19. 07. 2012, 15:58

Hallo,

möchte gerne in die Listansicht eine Suche einbinden nur wie bekomme ich die Werte später verarbeitet?

folgendes habe ich bislang

  1. <f:section name="main">
  2. <f:form method="post" action="list" name="demand" object="{demand}">
  3. <tr>
  4. <td valign="top" >Sorte: <f:form.textfield id="sorte" property="sorte" /></td>
  5. <td valign="top" >Werkzeug: <f:form.textfield id="werkzeug" property="werkzeug" /></td>
  6. <td valign="top" >Artikelnr.:<f:form.textfield id="artikelnr" property="artikelnr" size="10" /></td>
  7. <td><f:form.submit value="Suche" /></td>
  8. </tr>
  9. </f:form>
  10. </table>
  11. ...
  12. <f:widget.paginate objects="{artikels}" as="paginateArtikels" configuration="{itemsPerPage: 20, forcedNumberOfLinks:0}">
  13. <f:for each="{paginateArtikels}" as="artikel">
  14. ...

Das läuft auch soweit

ArtikelController

  1. public function listAction() {
  2. $artikelRepository = t3lib_div::makeInstance('Tx_Artikel_Domain_Repository_ArtikelRepository');
  3.  
  4. $this->view->assign('artikels', $artikelRepository->findDemand($demand));
  5. }

Hier meine ich müsste noch "[B]listAction(Tx_Artikel_Domain_Model_Demand $demand = NULL)[/B]" hin aber dann kommt der Fehler [color=red]"parameter $demand of method Tx_Artikel_Controller_ArtikelController->listAction() could not be detected."[/color] Nehme ich das raus und gebe von Hand in die Repository einen Wert ein funzt es zumindest mit der Ausgabe.

ArtikelRepository.php

  1. class Tx_Artikel_Domain_Repository_ArtikelRepository extends Tx_Extbase_Persistence_Repository {
  2. public function findDemand(Tx_Artikel_Domain_Model_Demand $demand = NULL) {
  3. $query = $this->createQuery();
  4. $query->matching($query->like('artikelnr', '%'.$demand.'%'));
  5. return $query->execute();
  6. }
  7. }

Demand.php

  1. class Tx_Artikel_Model_Demand extends Tx_Extbase_DomainObject_AbstractEntity {
  2.  
  3. /**
  4.   *@var Search Artikelnummer
  5.   */
  6.  
  7. protected $artikelnr;
  8.  
  9. /**
  10.   *@var Search Sorte
  11.   */
  12.  
  13. protected $sorte;
  14.  
  15. /**
  16.   *@var Search Sorte
  17.   */
  18.  
  19. protected $werkzeug;
  20.  
  21.  
  22. /**
  23.   * @param string Artikelnummer of the demand
  24.   * @return void
  25.   */
  26. public function setArtikelnr($artikelnr) {
  27. $this->artikelnr = $artikelnr;
  28. }
  29.  
  30. /**
  31.   * @return string artikelnr
  32.   */
  33. public function getArtikelnr(){
  34. return $this->artikelnr;
  35. }
  36.  
  37. /**
  38.   * @param string Sorte of the demand
  39.   * @return void
  40.   */
  41. public function setSorte($sorte) {
  42. $this->sorte = $sorte;
  43. }
  44.  
  45. /**
  46.   * @return string sorte
  47.   */
  48. public function getSorte(){
  49. return $this->sorte;
  50. }
  51.  
  52. /**
  53.   * @param string Sorte of the demand
  54.   * @return void
  55.   */
  56. public function setWerkzeug($werkzeug) {
  57. $this->sorte = $werkzeug;
  58. }
  59.  
  60. /**
  61.   * @return string sorte
  62.   */
  63. public function getWerkzeug(){
  64. return $this->werkzeug;
  65. }
  66.  
  67. }

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