Moin Moin,
ich versuche gerade, eine Suchabfrage über ein Formular zu entwickeln. Dazu habe ich neben meinem Domain Model Shop eine Demand Klasse eingerichtet, die einige getter und setter für die abzufragenden Felder besitzt.
Die Form sieht so aus:
<f:form action="list" controller="Shop" name="demand" object="{demand}">
<f:form.textfield name="city" property="city" />
<f:form.textfield name="zipcode" property="zipcode" />
<f:form.textfield name="address" property="address" />
<f:form.submit class="submit" value="Submit"/>
</f:form>
Die list-Action:
/**
* action list
*
* @param \Dm\DmShopfinder\Domain\Model\Demand $demand
* @return void
*/
public function listAction(\Dm\DmShopfinder\Domain\Model\Demand $demand = NULL) {
if($demand == NULL)
{
$this->view->assign('demand', $demand );
}
else {
$shops = $this->shopRepository->findAll();
$this->view->assign('shops', $shops);
$this->view->assign('demand', $demand );
}
}
Das Problem ist nun, dass $demand nach dem Abschicken des Formulars in der list-Action nun IMMER NULL ist. Ich kann also nicht auf das Objekt zugreifen ( da scheinbar auch gar keins übergeben wird ? ).
Wenn ich nun aber folgende Zeilen in der List-Action ergänze:
if ($this->request->hasArgument('demand')) {
$demandObject = $this->request->getArgument('demand');
}
$this->view->assign('demandObject', $demandObject );
dann kann ich im Fluid-Template im debug alle Werte sehen, die im Formular eingegeben worden sind. Allerdings wird mir dann auch nur ein Array und kein Objekt vom Typ Demand angezeigt.
Ich kann mir auch nicht vorstellen, dass es Sinn und Zweck ist, hier nochmal explizit die übergebenen Parameter abzufragen ?
Weiß jemand von euch, wie ich direkt das Objekt $demand an den Controller übergebe und dort auch auf das OBJEKT $demand zugreifen kann und dort nicht gezwungen werde, ein array zu nutzen ?
Vielen Dank für eure Hilfe.
Gruß