Hallo,
möchte gerne in die Listansicht eine Suche einbinden nur wie bekomme ich die Werte später verarbeitet?
folgendes habe ich bislang
<f:section name="main">
<table>
<f:form method="post" action="list" name="demand" object="{demand}">
<tr>
<td valign="top" >Sorte: <f:form.textfield id="sorte" property="sorte" /></td>
<td valign="top" >Werkzeug: <f:form.textfield id="werkzeug" property="werkzeug" /></td>
<td valign="top" >Artikelnr.:<f:form.textfield id="artikelnr" property="artikelnr" size="10" /></td>
<td><f:form.submit value="Suche" /></td>
</tr>
</f:form>
</table>
...
<f:widget.paginate objects="{artikels}" as="paginateArtikels" configuration="{itemsPerPage: 20, forcedNumberOfLinks:0}">
<f:for each="{paginateArtikels}" as="artikel">
...
Das läuft auch soweit
ArtikelController
public function listAction() {
$artikelRepository = t3lib_div::makeInstance('Tx_Artikel_Domain_Repository_ArtikelRepository');
$this->view->assign('artikels', $artikelRepository->findDemand($demand));
}
Hier meine ich müsste noch "listAction(Tx_Artikel_Domain_Model_Demand $demand = NULL)" hin aber dann kommt der Fehler "parameter $demand of method Tx_Artikel_Controller_ArtikelController->listAction() could not be detected." Nehme ich das raus und gebe von Hand in die Repository einen Wert ein funzt es zumindest mit der Ausgabe.
ArtikelRepository.php
class Tx_Artikel_Domain_Repository_ArtikelRepository extends Tx_Extbase_Persistence_Repository {
public function findDemand(Tx_Artikel_Domain_Model_Demand $demand = NULL) {
$query = $this->createQuery();
$query->matching($query->like('artikelnr', '%'.$demand.'%'));
return $query->execute();
}
}
Demand.php
class Tx_Artikel_Model_Demand extends Tx_Extbase_DomainObject_AbstractEntity {
/**
*@var Search Artikelnummer
*/
protected $artikelnr;
/**
*@var Search Sorte
*/
protected $sorte;
/**
*@var Search Sorte
*/
protected $werkzeug;
/**
* @param string Artikelnummer of the demand
* @return void
*/
public function setArtikelnr($artikelnr) {
$this->artikelnr = $artikelnr;
}
/**
* @return string artikelnr
*/
public function getArtikelnr(){
return $this->artikelnr;
}
/**
* @param string Sorte of the demand
* @return void
*/
public function setSorte($sorte) {
$this->sorte = $sorte;
}
/**
* @return string sorte
*/
public function getSorte(){
return $this->sorte;
}
/**
* @param string Sorte of the demand
* @return void
*/
public function setWerkzeug($werkzeug) {
$this->sorte = $werkzeug;
}
/**
* @return string sorte
*/
public function getWerkzeug(){
return $this->werkzeug;
}
}
Muss ich noch irgendwas beachten? Oder kann mir jemand einen simplen Weg aufzeigen. Habe mir auch schon viele fertige extensions angesehen wie news und sjr_offers aber das ist schon etwas umfangreicher da steige ich leider noch nicht ganz durch ...
Gruß
mimaxx