Hi,
ich check's irgendwie nicht. Ich würde gerne eine Select-Box anzeigen, in der ein Modellobjekt ausgewählt werden kann. Das ausgewählte Objekt sollte an eine Action übergeben werden, was aber scheinbar nicht passiert.
Fluid:
<f:form action="import" name="configuration" object="{configuration}">
<f:form.select property="configuration"
value="{configuration}"
options="{availableConfigurations}"
optionValueField="uid"
optionLabelField="name" />
<f:form.submit name="submitButton" value="Start" />
</f:form>
Befüllt wird die Select-Box hiermit:
$rep = t3lib_div::makeInstance('Tx_Bla_Domain_Repository_ConfigurationRepository');
$availableConfigurations = $rep->findAll();
$this->view->assign('availableConfigurations', $availableConfigurations);
Das Befüllen klappt scheinbar auch, weil die Select-Box Einträge enthält. Das ist aber alles. {configuration} befülle ich im Template nicht. MÜsste ich das? Wenn ja, mit was?
Nun die Action:
/**
* action import
*
* @param Tx_Bla_Domain_Model_Configuration $configuration
* @return void
*/
public function importAction(Tx_Bla_Domain_Model_Configuration $configuration) {
...
}
Die Fehlermeldung, die ich nun erhalte ist:
#1251730701: The value must be of type "Tx_Bla_Domain_Model_Configuration", but was of type "NULL".<p>Property 'configuration' could not be set. (#1236783102)</p>
Was mache ich falsch? Oder geht das so vielleicht gar nicht? Ich finde es eigentlich auch nicht logisch, denn in der Form steht ja object="{configuration}" - da bezieht man sich beim property-Attribut im form.select doch genau auf dieses Objekt. Das kann doch nicht einfach ersetzt werden. Es ist doch dieses Objekt, dass an die Action weitergeleitet wird. Und eigentlich wird es ja nicht mal mit assign gesetzt. Hm, ich verstehe das gar nicht.
Muss ich vielleicht doch mit $this->request->getArgument('configuration') in der Action arbeiten?