Extbase-Listenfilter Problem: No value found for key "Tx_Fluid_ViewHelpers_FormViewHelper->formObject" [Gelöst]

  • zabinetta zabinetta
    Sternenflotten-Admiral
    0 x
    171 Beiträge
    3 Hilfreiche Beiträge
    13. 06. 2013, 10:39

    Hi Liste,
    ich habe ein Extbase-Problem mit einem Suchfilter, der eine Liste nach bestimmten Kriterien filtern soll.

    folgendes:
    die Extension spuckt Listen aus, mein komfortables Suchformular enthält ein Textfeld, ein Select (auf eine foreign table) und dann noch radiobuttons, die ich manuell bestückt habe und die bestimmte Werte in einem bestimmten Feld suchen sollen.

    das Problem ist, daß die Radiobuttons erst gerendert werden, wenn bereits eine andere Filteroption gesetzt ist. ist noch kein Filter gesetzt wird statt des Radiobuttons angezeigt:
    No value found for key "Tx_Fluid_ViewHelpers_FormViewHelper->formObject"
    wenn Filter gesetzt sind ist alles prima.
    ich habe die Radiobuttons jetzt erstmal mit f:if gepuffert, bin aber echt ratlos an was der Fehler liegt.
    TYPO3-Version ist 4.7.10.
    hätte jemand einen Tipp?
    Quelltext unten

    liebe Grüße von Sabine

    Fluid:

    1. <f:form method="post" action="list" name="filter" object="{filter}">
    2. <f:form.textfield property="searchWord" class="sword auw-searchbox ui-autocomplete-input"/>
    3. <br><br>
    4. <f:form.submit class="btn" value="Suchen" />
    5. <f:link.page pageUid="{TSFE:id}" class="btn">Zurücksetzen</f:link.page>
    6. <br><br>
    7. <f:form.select id="mandant" property="mandant" options="{mandants}" optionValueField="uid" optionLabelField="name" />
    8.  
    9. <f:if condition="{filter}">
    10. <br><br>
    11. <h4>Zeitform</h4>
    12. <f:for each="{0:'Tagesform', 1:'Abendform', 2:'Blended', 4:'Wochenend'}" as="zForm">
    13. <label><f:form.radio property="lgFormZeit" value="{zForm}" /> {zForm}</label><br>
    14. </f:for>
    15. <label><f:form.radio property="lgFormZeit" value="" /> egal</label><br>
    16. </f:if>
    17.  
    18.  
    19. </f:form>

    Model:

    1. class Tx_MyExt_Domain_Model_Filter extends Tx_Extbase_DomainObject_AbstractEntity {
    2.  
    3. /**
    4. * @var Tx_MyExt_Domain_Model_Mandant The demanded mandant
    5. * @lazy
    6. **/
    7. protected $mandant;
    8.  
    9. /**
    10. * @var Tx_MyExt_Domain_Model_Hauptgruppen The demanded hauptgruppe
    11. **/
    12. protected $hauptgruppen;
    13.  
    14. /**
    15. * @var string A search word
    16. **/
    17. protected $searchWord;
    18.  
    19.  
    20. /**
    21. * Zeitform
    22. *
    23. * @var string
    24. */
    25. protected $lgFormZeit;
    26.  
    27. /**
    28. * Zeitform2
    29. *
    30. * @var string
    31. */
    32. protected $theFormZeit;
    33.  
    34. /**
    35. * @param Tx_MyExt_Domain_Model_Mandant The demanded mandant
    36. * @return void
    37. */
    38. public function setMandant(Tx_MyExt_Domain_Model_Mandant $mandant = NULL) {
    39. $this->mandant = $mandant;
    40. }
    41.  
    42. /**
    43. * @return Tx_MyExt_Domain_Model_Mandant The demanded mandant
    44. */
    45. public function getMandant() {
    46. return $this->mandant;
    47. }
    48.  
    49. /**
    50. * @param string The search word of the demand
    51. * @return void
    52. */
    53. public function setSearchWord($searchWord) {
    54. $this->searchWord = $searchWord;
    55. }
    56.  
    57. /**
    58. * @return string The search word of the demand
    59. */
    60. public function getSearchWord() {
    61. return $this->searchWord;
    62. }
    63.  
    64. /**
    65. * @param string The zeitform as Zeitform word of the demand
    66. * @return void
    67. */
    68. public function setLgFormZeit($lgFormZeit) {
    69. $this->lgFormZeit = $lgFormZeit;
    70. }
    71.  
    72. /**
    73. * @return string The formzeit of the demand
    74. */
    75. public function getLgFormZeit() {
    76. return $this->lgFormZeit;
    77. }
    78.  
    79. }

    Controller:
    1. /**
    2. * action list
    3. * @param Tx_MyExt_Domain_Model_Filter $filter filters taken as base for list of termine
    4.   * @ignorevalidation $filter
    5. * @return void
    6. */
    7. public function listAction(Tx_MyExt_Domain_Model_Filter $filter=NULL) {
    8. $this->view->assign('filter', $filter);
    9.  
    10. // mandanten für Filter aus repository
    11. //$mandants = $this->mandantRepository->findAll();
    12. $this->view->assign('mandants', array_merge(array('0' => 'Suchbegriff wählen (Anbieter)'), $this->mandantRepository->findAll()->toArray()));
    13.  
    14. // termine fuer die Liste kommen aus repository
    15. //$termines = $this->termineRepository->findAll();
    16. $termines = $this->termineRepository->findFromSettings($this->settings,$filter);
    17. $this->view->assign('termines', $termines);
    18.  
    19. //SinglePid und Tagungs-SinglePid als Variablen in Fluid verfügbar machen
    20. $singlePid = $this->settings['singlePid'];
    21. $this->view->assign('singlePid', $singlePid);
    22.  
    23. $tgSinglePid = $this->settings['tgSinglePid'];
    24. $this->view->assign('tgSinglePid', $tgSinglePid);
    25. $this->view->assign('filterOption', $filter);
    26. }


  • 1
  • kitsunet kitsunet
    Flash Gordon
    0 x
    2559 Beiträge
    27 Hilfreiche Beiträge
    13. 06. 2013, 12:15

    Naja beim ersten Aufruf ist das Filterobjekt NULL da könnte dann was schiefgehen. Du kannst aber ja einfach in der listAction am Anfang wenn NULL einen neuen, leeren Filter erzeugen.

    Ich würde übrigens das Filterobjekt nicht von AbstractEntity erben lassen, du willst das ja wahrscheinlich nicht speichern und eine uid braucht es auch nicht...

    config.baseURL = http://www.kitsunet.com/
    TYPO3 Flow und Neos Community Contact
    Release Manager TYPO3 Neos 1.1
    Ich habe Probleme mit den PMs hier, also schreibt mir bitte eine Mail oder über Twitter!

  • zabinetta zabinetta
    Sternenflotten-Admiral
    0 x
    171 Beiträge
    3 Hilfreiche Beiträge
    13. 06. 2013, 15:20

    Hallo Kitsunet,

    vielen vielen Dank für die Tipps. hab viel gelernt.

    Das mit dem AbstractEntity, hab ich gleich rausgenommen, und versteh jetzt was das macht. Danke!

    bei der anderen Sache hat es etwas gedauert bis es geklappt hat:
    oben in der listAction hab ich jetzt

    1. if(is_null($filter)) $filter = new Tx_MyExt_Domain_Model_Filter();

    klappt.

  • kitsunet kitsunet
    Flash Gordon
    0 x
    2559 Beiträge
    27 Hilfreiche Beiträge
    13. 06. 2013, 19:54

    Hallo Zabinetta,

    dann aber auch bitte so:

    1. if ($filter === NULL) {
    2. $filter = new Tx_MyExt_Domain_Model_Filter();
    3. }

    config.baseURL = http://www.kitsunet.com/
    TYPO3 Flow und Neos Community Contact
    Release Manager TYPO3 Neos 1.1
    Ich habe Probleme mit den PMs hier, also schreibt mir bitte eine Mail oder über Twitter!

  • zabinetta zabinetta
    Sternenflotten-Admiral
    0 x
    171 Beiträge
    3 Hilfreiche Beiträge
    14. 06. 2013, 09:16

    hast recht.

  • 1