Zum Inhalt springen

Wert wird nicht aus der DB ausgelesen

Erstellt am 8. Juli 2011 · 3 Antworten · letzte Antwort am 8. Juli 2011

Tags: TCA, Frage

Gloey ·

Hallo,

in meiner Extension habe ich zu einer bestehenden Tabelle per Hand eine Spalte hinzugefügt.
Dazu habe ich in der ext_tables.sql die Spalte angegeben

feID int(11) DEFAULT '0' NOT NULL,

Im Model habe ich eine Variable sowie getter und setter hinzugefügt

<?php
/**
 * feID
 *
 * @var integer
 */
protected $feID;
?>

Im TCA habe ich das Feld hinzugefügt, das auch im Backend angezeigt wird:

<?php
'feID' => array(
  'exclude' => 0,
  'label' => 'LLL:EXT:fhw_timetable_whb/Resources/Private/Language/locallang_db.xml:tx_fhwtimetablewhb_domain_model_company.feID',
  'config' => array(
    'type' => 'input',
    'size' => 30,
    'eval' => 'int'
  ),
),
?>

Außerdem habe ich 'feID' oben im TCA bei showRecordFieldList und showitem hinzugefügt

Im Backend kann ich den Wert auch speichern und er taucht in der Datenbank.
Leider wird der Wert nicht aus der Datenbank ausgelesen und angezeigt.

Kann mir jemand sagen, was ich vergessen habe?

Birte

BlackPixel ·

Hast Du einen Getter und einen Setter geschrieben? Manchmal ist es ganz hilfreich PHPUnit zu installieren und einen Testcase für Domänenmodels zu schreiben. Der überprüft dann das komplette Model auf das von dir beschriebene Problem.

Gruß Manfred

xandio ·

Hallo Birte!

Das Problem sind wahrscheinlich die Bezeichnungen.

Die Eigenschaft (im Model) würde ich "feId" und die Datenbank-Felder dann nach Konvention "fe_id" (in ext_tables.php und ext_tables.sql) benennen.

Viele Grüße,
Xandi

Gloey ·

@ Manfred: Getter und Setter hatte ich geschrieben (und dreimal auf Richtigkeit überprüft ;-) )

@ Xandi: Du hattest recht, ich habe die Namenskonvention nicht beachtet, jetzt funktioniert alles.

Danke Euch beiden :-)