Hallo,
ich versuche in einer eigenen Extension tt_address einzubinden. D.h. es gibt ein Select-Feld aus dem Addresseinträge ausgewählt werden können. Die Auswahl und speicherung in der Datebank funktioniert soweit. Dazu habe ich im TCA ein neues Feld definiert
'addresses' => [
'exclude' => true,
'label' => 'Adresse',
'config' => [
'type' => 'select',
'items' => array(array(' --- Bitte wählen --- ',0)),
'foreign_table' => 'tt_address',
'foreign_table_where' => 'ORDER BY tt_address.name'
],
],
Dieses Feld wurde in der Datenbank "tx_betriebe" angelegt.
addresses varchar(255) DEFAULT '' NOT NULL,
Dort werden auch die IDs der Adressen kommasepariert gespeichert.
Im Model "Company.php" habe ich Getter- und Setter-Methoden eingefügt.
/**
* @var \FriendsOfTYPO3\TtAddress\Domain\Model\Address>
* @TYPO3\CMS\Extbase\Annotation\ORM\Lazy
*/
protected $addresses = null;
/**
* Adds a Address
*
* @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\FriendsOfTYPO3\TtAddress\Domain\Model\Address> $addresses
*/
public function setAddresses(\FriendsOfTYPO3\TtAddress\Domain\Model\Address $addresses) {
$this->addresses->attach($addresses);
}
/**
* Returns the Address
*
* @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\FriendsOfTYPO3\TtAddress\Domain\Model\Address> $addresses
*/
public function getAddresses() {
return $this->addresses;
}
Nun wird leider mein Wissen etwas dünn, daher bitte um Hilfe.
In der View wird mir immer nur eine Adresse angezeigt.
addresses => protectedFriendsOfTYPO3\TtAddress\Domain\Model\Addressprototypepersistent entity (uid=5, pid=218)
gender => protected'm' (1 chars)
name => protected'Max Mustermann' (17 chars)
...
Hier sollte aber ein Objekt vorliegen uter welchem dann die Adressen als Entities liegen, welches dann durchiteriert werden kann. Das macht es aber leider nicht. Was (außer vielleicht mehr Grundwissen) fehlt mir da noch?
Vielen Dank!
Th.