FLOW3 bietet eine bequeme Möglichkeit, Entitäten als ID in der URL zu übergeben und sie automatisch in den Parametern der Controller-Aktion zu instanziieren:
class PostController extends \TYPO3\FLOW3\MVC\Controller\ActionController {
public function editAction(Post $post) {
...
}
}
Aber was ist mit dem Anwendungsfall, in dem Sie Kontrollkästchen haben, die jeweils ein bestimmtes Objekt darstellen? Es wäre praktisch, sie auch automatisch zu beleuchten:
<input type="checkbox" name="tags[]" value="1" />
<input type="checkbox" name="tags[]" value="2" />
...
Gibt es eine Möglichkeit, FLOW3 anzuweisen, die $tags
Variable automatisch als Array von Tag
Objekten zu instanziieren ? Etwas wie:
public function setTagsAction(Post $post, /** @var Model\Tag */ array $tags) {
$post->setTags($tags);
}
php
model-view-controller
orm
typo3-flow
Benjamin
quelle
quelle
<input type="checkbox" name="tags[][__identity]" value="1" />
(zumindest in extbase sollte dies möglich sein)Antworten:
/** * @param Post $post * @param \Doctrine\Common\Collections\ArrayCollection<\your\namespace\Model\Tag> $tag */ public function setTagsAction(Post $post, $tags) { ...
afaik Doctrine konvertiert Ihr Array in eine Sammlung, die Objekte enthält, die vom bereitgestellten Array zugeordnet sind
quelle
Entfernen Sie das Wortarray vor $ tags
quelle