Hey Leute,
Ich hoffe, mir kann vielleicht jemand auf den letzten Metern meiner Extension helfen. Ich bin blutiger Extbase Anfänger aber Listen- und Detailansicht eines fe_user stehen soweit 🙂
Ich habe über den Extension Builder die fe_user Tabelle erweitert. Auf „normale“ Felder mit Inhalt kann ich zugreifen und sie ausgeben, kein Problem soweit. Ein weiteres Feld „fachgebiete“ habe ich als M:M Relation (Tabelle tx_musiker_fachgebiete, tx_mmmusiker_erweiterteinfos_fachgebiete_mm) angelegt und hier tu ich mich schwer mit der Ausgabe bzw. dem Handling im Controller.
In der showAction meines Controllers übergebe ich alles für die Detail-Ansicht eines Frontend-Users ( for each im Template und dann {feuser.xxx) ), wie kann ich jetzt zusätzlich die zugewiesenen Fachgebiete ausgeben? In {feuser.fachgebiete} steht ja nur die Anzahl der zugewiesen Fachgebiete... darüber möchte ich aber den Titel aller dem User zugeordneten Fachgebiete ausgeben.
Hier mal meine Dateien (Ausschnitte):
ErweiterteInfosController.php:
…
/**
* User ExtendFeUser
*
* @var \Mmmusiker\MmMusiker\Domain\Repository\ExtendFeUser
* @inject
*/
protected $ExtendFeUser;
/**
* action show
*
* @param \Mmmusiker\MmMusiker\Domain\Model\ErweiterteInfos $uid
* @return void
*/
public function showAction(\Mmmusiker\MmMusiker\Domain\Model\ErweiterteInfos $uid)
{
$temp = $this->request->getArgument('uid');
$user = $this->ExtendFeUser->findByUid($temp);
$this->view->assign('feuser',$user);
}
…
Domain/Model/ExtendFeUser.php:
…
/**
* fachgebiete
*
* @var string
*/
protected $fachgebiete;
/**
* @param string $fachgebiete
*/
public function getfachgebiete() {
return $this->fachgebiete;
}
/**
* @param string $fachgebiete
*/
public function setfachgebiete($fachgebiete) {
$this->fachgebiete = $fachgebiete;
}
…
TCA/Overrides/fe_users.php
…
'fachgebiete' => [
'exclude' => false,
'label' => 'Fachgebiete',
'config' => [
'type' => 'select',
'renderType' => 'selectMultipleSideBySide',
'items' => [
['', 0],
],
'foreign_table' => 'tx_musiker_fachgebiete',
'MM' => 'tx_musiker_erweiterteinfos_fachgebiete_mm',
'foreign_table_where' => 'ORDER BY tx_musiker_fachgebiete.title',
'size' => 5,
'minitems' => 0,
'maxitems' => 10,
]
],
...
ext_typoscript_setup.typoscript
config.tx_extbase {
persistence {
classes {
Mmmusiker\MmMusiker\Domain\Model\ErweiterteInfos {
mapping {
tableName = fe_users
recordType = Tx_MmMusiker_ErweiterteInfos
}
}
Mmmusiker\MmMusiker\Domain\Model\Fachgebiete {
mapping {
tableName = tx_musiker_fachgebiete
recordType = Tx_MmMusiker_Fachgebiete
}
}
…
Edit: Irgendwie scheint die Code-Formatierung hier nicht mehr so ganz zu funktionieren :/