[TYPO3-german] TYPO3 7.7 - Extbase -> add() funktioniert nur 1x
Dr. Dieter Porth
typo3 at mobger.de
Sun Jun 26 16:30:47 CEST 2016
Hallo Mickeyy,
gut. An der Registrierung sollte es also nicht liegen.
> /**
> * action new
> *
> * @param \Vendor\Extname\Domain\Model\Contract $contract
> */
> public function newAction(\Vendor\Extname\Domain\Model\Contract
> $contract = NULL)
> {
> $this->view->assign('contract',$contract);
> }
>
> /**
> * action create
> *
> * @param \Vendor\Extname\Domain\Model\Contract $contract
> */
> public function createAction(\Vendor\Extname\Domain\Model\Contract
> $contract)
> {
> $this->contractRepository->add($contract);
> $this->redirect('list');
> }
>
In einer Testextension wirft mir der Extensionbuilder folgendes raus:
/** * action new * * @return void */ public function newAction() { } /**
* action create * * @param \Testthree\Testthree\Domain\Model\Main
$newMain * @return void */ public function
createAction(\Testthree\Testthree\Domain\Model\Main $newMain) {
$this->addFlashMessage('The object was created. Please be aware that
this action is publicly accessible unless you implement an access check.
See
http://wiki.typo3.org/T3Doc/Extension_Builder/Using_the_Extension_Builder#1._Model_the_domain',
'', \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR);
$this->mainRepository->add($newMain); $this->redirect('list'); } wobei
der Viewhelper für New dann folgendes Formular enthält. <f:render
partial="FormErrors" arguments="{object:Main}" /> <f:form
action="create" enctype="multipart/form-data" name="newMain"
object="{newMain}"> <f:render partial="Main/FormFields" />
<f:form.submit value="Create new" /> </f:form> a) Hast du deine
Namensgleichheit bei Create und dem von dir erwarteten Objekt überprüft?
b) Warum braucht dein New einen Parameter? Die New-Aktion dient doch nur
dazu, ein unbeflecktes Formular auszu8geben Die Create-Aktion brauch
natürlich ein Object, da es die Daten aus dem abgeschickten Formular
verarbeiten soll. Eine weitere, vermutlich wahrscheinlichtere
Fehlermöglichkeit kann die "IRRE-Falle" sein. Wenn du per Action für ein
IRRE-Feld ein neues Element schaffen willst und wenn das IRRE-feld nur
ein Elmenet zulässt, dann kann deine Create-Aktion auch nur einmal
funktionieren. Jede weitere Creation verhindern deine TCA-Einstellungen.
Mit besten Grüßen Dieter
More information about the TYPO3-german
mailing list