[Frage] Update von Relation im Frontend - Fehler: Call to a member function update() on null [Gelöst] TYPO3-Version: -

  • mbuchegger mbuchegge...
    Sternenflotten-Admiral
    0 x
    247 Beiträge
    0 Hilfreiche Beiträge
    25. 08. 2016, 16:43

    Hi Leute.

    Ich kapier folgendes nicht...
    Geht um ne eigene Extension. Funktioniert auch schon sehr viel.
    Jetzt geht es um die Eingaben über das Frontend, und zwar um ne Relation zum HauptController.

    [b]Struktur:[/b]
    PROFIL
    Feld 1
    Feld 2
    Feld 3
    RELATION
    Feld 1
    Feld 2

    Daten vom Profil zu ändern ist super Easy.

    Bei der Relation gab es mal zu Anfangs n Verständnisproblem, aber das hab ich jetzt auch mittlerweile. Erstellen und Löschen von ner Relation klappt hervorragend.

    Bei der EDIT bekomm ich aber nen Fehler, den ich nicht nachvollziehen kann...

    [b]Zumal zum Fluid:[/b]

    1. <f:form action="update" name="sprache" object="{sprache}" arguments="{kuenstlerprofil:kuenstlerprofil}">
    2. <f:render partial="Sprache/FormFields" arguments="{sprache:sprache}" />
    3. <f:form.submit value="Save" />
    4. </f:form>

    [b]SpracheController.php[/b]

    1. /**
    2.  * SpracheController
    3.  */
    4. class SpracheController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController
    5. {
    6. /**
    7.   * action edit
    8.   *
    9.   * @param \Vendor\ExtensionName\Domain\Model\Kuenstlerprofil $kuenstlerprofil
    10.   * @param \Vendor\ExtensionName\Domain\Model\Sprache $sprache
    11.   */
    12. public function editAction(
    13. \Vendor\ExtensionName\Domain\Model\Kuenstlerprofil $kuenstlerprofil,
    14. \Vendor\ExtensionName\Domain\Model\Sprache $sprache)
    15. {
    16. $this->view->assign('kuenstlerprofil',$kuenstlerprofil);
    17. $this->view->assign('sprache',$sprache);
    18. }
    19.  
    20. /**
    21.   * action update
    22.   *
    23.   * @param\Vendor\ExtensionName\Domain\Model\Kuenstlerprofil $kuenstlerprofil
    24.   * @param \Vendor\ExtensionName\Domain\Model\Sprache $sprache
    25.   */
    26. public function updateAction(
    27. \Vendor\ExtensionName\Domain\Model\Kuenstlerprofil $kuenstlerprofil,
    28. \Vendor\ExtensionName\Domain\Model\Sprache $sprache) {
    29.  
    30. $this->spracheRepository->update($sprache);
    31. $this->redirect('edit','Kuenstlerprofil',NULL,array('kuenstlerprofil'=>$kuenstlerprofil));
    32. }
    33. }

    So, und wenn ich das Formular jetzt abschlicke, dann bekomm ich die Fehlermeldung:
    Call to a member function update() on null
    Error thrown in file
    .../Classes/Controller/SpracheController.php in line 111.

    Zeile 111 ist übrigens " $this->spracheRepository->update($sprache); "

    Versteh ich aber überhaupt nicht. Was will er denn von mir :/ Die Funktion update() ist ja nicht zu deklarieren, sondern muss mal funktionieren. So hab ich das nachgelesen. So wurde es ja auch vom Extension-Builder angelegt...

    Kann mir bitte jemand helfen?

    lg M.

  • mbuchegger mbuchegge...
    Sternenflotten-Admiral
    0 x
    247 Beiträge
    0 Hilfreiche Beiträge
    29. 08. 2016, 17:32 - Lösung

    Lösung.

    ResponsiveFile ist schon notwendig, und das muss auch im Controller registriert sein.
    Dann ist alles gut.


  • 1
  • mbuchegger mbuchegge...
    Sternenflotten-Admiral
    0 x
    247 Beiträge
    0 Hilfreiche Beiträge
    29. 08. 2016, 17:32

    Lösung.

    ResponsiveFile ist schon notwendig, und das muss auch im Controller registriert sein.
    Dann ist alles gut.

  • 1