[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