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.
Struktur:
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...
Zumal zum Fluid:
<f:form action="update" name="sprache" object="{sprache}" arguments="{kuenstlerprofil:kuenstlerprofil}">
<f:render partial="Sprache/FormFields" arguments="{sprache:sprache}" />
<f:form.submit value="Save" />
</f:form>
SpracheController.php
/**
* SpracheController
*/
class SpracheController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController
{
/**
* action edit
*
* @param \Vendor\ExtensionName\Domain\Model\Kuenstlerprofil $kuenstlerprofil
* @param \Vendor\ExtensionName\Domain\Model\Sprache $sprache
*/
public function editAction(
\Vendor\ExtensionName\Domain\Model\Kuenstlerprofil $kuenstlerprofil,
\Vendor\ExtensionName\Domain\Model\Sprache $sprache)
{
$this->view->assign('kuenstlerprofil',$kuenstlerprofil);
$this->view->assign('sprache',$sprache);
}
/**
* action update
*
* @param\Vendor\ExtensionName\Domain\Model\Kuenstlerprofil $kuenstlerprofil
* @param \Vendor\ExtensionName\Domain\Model\Sprache $sprache
*/
public function updateAction(
\Vendor\ExtensionName\Domain\Model\Kuenstlerprofil $kuenstlerprofil,
\Vendor\ExtensionName\Domain\Model\Sprache $sprache) {
$this->spracheRepository->update($sprache);
$this->redirect('edit','Kuenstlerprofil',NULL,array('kuenstlerprofil'=>$kuenstlerprofil));
}
}
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.