[TYPO3-german] extbase create/update/delete

Christian Tauscher christian.tauscher at media-distillery.de
Fri Mar 27 12:06:44 CET 2015


Am 25.03.2015 um 09:25 schrieb Mikel:

 > Viel Info stellst Du ja nicht gerade zur Verfügung.

Ich bin immer versucht dann die ganze EXT mitzuschicken da ich ja nicht 
wirklich weiß was ich tue... #-)

 > Leitet dein Formular denn überhaupt auf die entsprechende Action weiter?
 > Wie sieht dein Form Submit aus? Wie die entsprechende Action in Deinem
 > Controller?

Die  Action wird aufgerufen.
getestet mit einem die();
und ausserdem geb ich mir noch eine flashMessage aus.

 > Debugge mal die übergebenen Parameter in der Action des entsprechenden
 > Controllers. Dann siehst Du direkt, ob da überhaupt was aufgerufen bzw.
 > übergeben wird.

Wie debugge ich die Parameter?
Die meisten Objekte von extbase sind so komplex das gar nichts 
ausgegeben wird und das programm verreckt.

debug() ist i.d.R. nutzlos.

Gibt es da keine alternative dazu?


Also zurück zum Problem. machmer erst mal as Update:

Templates/PrintitemIpdateForm.html
----------------------------------
<h1>Edit Printitem</h1>
<f:flashMessages renderMode="div" />
<f:render partial="FormErrors" arguments="{object:Printitem}" />
<f:form action="update" name="printitem" object="{printitem}">
   <f:form.textfield property="name" class="form-control"/>
   .. diverse inputs

   <f:link.action action="update"
     arguments="{printitem: printitem}">Aktualisieren</f:link.action>
</f:form>
</f:section>


wird auf der Seite gerendert zu:

<h1>Edit Printitem</h1>
<form name="printitem" 
action="index.php?id=30&amp;tx_screenprinting_pi1%5Baction%5D=update&amp;tx_screenprinting_pi1%5Bcontroller%5D=Printitem" 
method="post">

<input name="tx_.._pi1[printitem][__identity]" value="23" type="hidden">
<input name="tx_.._pi1[__referrer][@extension]" value="Screenprinting" 
type="hidden">
<input name="tx_.._pi1[__referrer][@vendor]" value="Tmd" type="hidden">
<input name="tx_.._pi1[__referrer][@controller]" value="Printitem" 
type="hidden">
<input name="tx_.._pi1[__referrer][@action]" value="updateForm" 
type="hidden">
<input name="tx_.._pi1[__referrer][arguments]" value="YTozO...4fb" 
type="hidden">
<input name="tx_.._pi1[__trustedProperties]" 
value="a:1:{s:9:&quot;printitem&quot;;a:4:{s:4:&quot;name&quot;;i:1;s:11:&quot;description&quot;;i:1;s:6:&quot;reason&quot;;i:1;s:10:&quot;__identity&quot;;i:1;}}09786dc237dc36a0b458091ac1602f9f5f355260" 
type="hidden">

<label for="name">Name</label>
<input class="form-control" name="tx_.._pi1[printitem][name]" 
value="TEEt 1 Gedruckte Ni/MH Batterien" type="text">

<a 
href="index.php?id=30&amp;tx_.._pi1%5Bprintitem%5D=23&amp;tx_screenprinting_pi1%5Baction%5D=update&amp;tx_screenprinting_pi1%5Bcontroller%5D=Printitem">Aktualisieren</a>




refer ist sie Action updateForm. OK.
Felder sind korrekt befüllt. OK
submit ist mit updateAction verbunden. OK.

update wird aufgerufen:

PrintitemController.php:
------------------------
/**
  * action update record
  *
  * @param \Tmd\screenprinting\Domain\Model\Printitem $printitem
  * @return void
  */
public function updateAction(\Tmd\screenprinting\Domain\Model\Printitem 
$printitem) {
   $this->printitemRepository->update($printitem);
   $this->addFlashMessage('Datensatz '.$printitem.' wurde aktualisiert', 
'', \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR);
   $this->redirect('list');
}


Ausgabe in der listView:

Datensatz Tmd\Screenprinting\Domain\Model\Printitem:23 wurde aktualisiert

Darunter die Liste mit den unveränderten daten.
Im BE ist auch nichts verändert.



Da verreckt doch was mit der persistenz-Schicht (sperriges Wort).
Aber wie debugge ich das. Und sollte das nicht automatisch gehen?


@Mikel:
Ob dieser auszug reicht um für dich Licht ins dunkel zu bringen weiß ich 
nicht. Gerne schick ich dir die EXT oder ganze Klassen oder was auch 
immer. Sofern zu halt Zeit Lust und Laune hast dir um Probleme zu 
kümmern die nicht die Deinen sind.


Wie dem auch sein, Danke für dein Hilfe


Christian.




More information about the TYPO3-german mailing list