it-swarm.com.de

Speichern mit folgendem Fehler fehlgeschlagen: Unbekannte Spalte 'Erstellt' in 'Feldliste'

Beim Entwickeln der Back-End-Verwaltungsfunktion für Datensätze einer Komponente wird die Meldung "Speichern mit folgendem Fehler fehlgeschlagen: Unbekannte Spalte in 'Feldliste' erstellt" angezeigt.

Ich habe die helloworld-Komponente gemäß dem Joomla Docs-Tutorial erstellt: https://docs.joomla.org/J3.x:Developing_an_MVC_Component/Introduction

Ich versuche, das Back-End von der einfachen Anzeige der Liste der Elemente ( https://docs.joomla.org/J3.x:Developing_an_MVC_Component/Basic_backend ) zu erweitern, um die einzelnen Elemente zu ändern (dh zu verwalten) Aufzeichnung. Zu diesem Zweck habe ich die Banneransicht com_banners des Backends und die zugehörigen Dateien (Controller, Modell, Tabelle usw.) kopiert und die Dateien an die Struktur des einzelnen Datensatzes meiner Komponente angepasst.

Die Tabelle meiner Komponente enthält nur drei Spalten: ID, Begrüßung und Status.

In der Ansicht "Datensatz verwalten" für meine Komponente wird der Datensatz korrekt angezeigt. Wenn ich jedoch die Begrüßung ändere und versuche, sie zu speichern, wird der Fehler angezeigt

"Speichern mit folgendem Fehler fehlgeschlagen: Unbekannte Spalte 'erstellt' in 'Feldliste'"

Wie ich bereits sagte, enthält die Tabelle meiner Komponente nur drei Spalten: id, greeting und state. Der Fehler impliziert, dass die Abfrage die zusätzliche Spalte "Erstellt" enthielt. Warum wird diese zusätzliche Spalte der Abfrage hinzugefügt?

AKTUALISIEREN:

@Sharky schlug vor, $this->created = JFactory::getDate()->toSql(); aus der Table-Klasse der Komponente zu löschen. Ich habe, und dann habe ich den Fehler bekommen

"Speichern mit folgendem Fehler fehlgeschlagen: Unbekannte Spalte 'geändert' in 'Feldliste'"

Im Moment sieht die Table-Klasse für meine Komponente folgendermaßen aus:

class HelloWorldTableHelloWorld extends JTable
{
    /**
     * Constructor
     *
     * @param   JDatabaseDriver  $db  Database connector object
     *
     * @since   1.5
     */
    public function __construct(&$db)
    {

        parent::__construct('#__helloworld', 'id', $db);

        JTableObserverContenthistory::createObserver($this, array('typeAlias' => 'com_helloworld.helloworld'));

        $this->setColumnAlias('published', 'state');

    }

}
1
IberoMedia

Sie müssen etwas verpasst haben, als Sie die Dateien an Ihre Tabellenstruktur angepasst haben. Führen Sie eine Suche nach created durch die Dateien. Es könnte diese Zeile in /administrator/com_banners/tables/banner.php Sein:

$this->created = JFactory::getDate()->toSql();

Schauen Sie sich auch die Klasse des Modells Ihrer Komponente an.

Basierend auf Ihrem Update und dem Rat, den ich Ihnen gegeben habe (d. H. Überprüfen Sie Ihre Komponente auf den spezifischen Code von Banner), würden Sie die Zeilen aus der Methode prepareTable aus der Klasse HelloWorldModelHelloWorld löschen:

$table->modified    = $date->toSql();
$table->modified_by = $user->id;
$table->version++;
1
Sharky