Hi,
ich hab etwas Schwierigkeiten mit der Relation zweier Domain Models. Es geht um folgendes:
Bisher hatte ich ein Domain Model, welches schon sauber funktioniert (speichern und ausgeben der Daten geht problemlos). Nun möchte ich ein zweites Domain Model erstellen, welches mit dem Ersten über einen m:n Relation verkettet wird.
Das zweite Domain Model sollen Kategorien sein. Es beinhaltet hauptsächlich ein Feld für den Namen der Kategorie und hat den Klassennamen "Tx_MyExt_Domain_Model_Category".
Das erste Domain Model soll nun ein Select-Feld erhalten, in dem eine Kategorie ausgewählt werden kann. Klassennamen soll bsplw. "Tx_MyExt_Domain_Model_Car" sein. Die Kategorien sollen jetzt natürlich aus den angelegten Datensätzen des zweiten Domain Models kommen und könnten z.B. die Namen aller Autohersteller sein.
Das Domain Model "Category" sieht nun wie folgt aus (Domain/Model/Category.php):
<?php
class Tx_MyExt_Domain_Model_Category extends Tx_Extbase_DomainObject_AbstractEntity {
/**
* @var string
**/
protected $name;
public function __construct($name='') {
$this->setName($name);
}
/**
*
* @param string $name
*/
public function setName($name) {
$this->name = (string)$name;
}
/**
*
* @return string
*/
public function getName() {
return $this->name;
}
}
Das Domain Model "Car" habe ich um folgendes erweitert (Domain/Model/Car.php):
<?php
class Tx_MyExt_Domain_Model_Car extends Tx_Extbase_DomainObject_AbstractEntity {
[...]
/**
*
* @var Tx_MyExt_Domain_Model_Category
*/
protected $categories;
public function __construct($categories=0) {
[...]
$this->setCategories($categories);
[...]
}
[...]
/**
*
* @param int $categories
*/
public function setCategories($categories) {
$this->categories = $categories;
}
/**
*
* @return Tx_MyExt_Domain_Model_Category
*/
public function getCategories() {
return $this->categories;
}
}
?>
Die tca.php hab ich folgendermaßen erweitert:
<?php
$TCA['tx_myext_domain_model_car'] = array (
[...]
'columns' => array(
'categories' => array(
'exclude' => 1,
'label' => 'Kategorien',
'config' => array(
'type' => 'select',
'size' => 1,
'minitems' => 1,
'maxitems' => 1,
'multiple' => 0,
'default' => 0,
'foreign_table' => 'tx_myext_domain_model_category',
'MM' => 'tx_myext_car_category_mm',
)
),
)
[...]
);
?>
Ok, nun zum eigentlichen Problem:
im Backend kann ich alles anlegen, die m:n Relation scheint also funktioniert zu haben. Die angelegten Kategorien werden im neuen Select Feld in einem Datensatz des Domain Models "Car" angezeigt. In der Datenbanktabelle der MM-Relation werden auch die passenden Einträge erstellt.
Geh ich jetzt ins Frontend, dann erhalte ich diese Fehlermeldung:
Tx_Extbase_Persistence_Exception_UnexpectedTypeException
Could not determine the type of the contained objects.
Ich versteh die Fehlermeldung nicht. Wenn ich in Google danach sucher erhalte ich keine hilfreichen Ergebnisse! 🙁
Was bedeutet die Fehlermeldung und was hab ich falsch gemacht?
Danke schon mal! 🙂