Параметры действия FLOW3 и массивы объектов - PullRequest
78 голосов
/ 13 октября 2011

FLOW3 предоставляет удобный способ передать сущности по идентификатору в URL и автоматически создать их экземпляры в параметрах действия контроллера:

class PostController extends \TYPO3\FLOW3\MVC\Controller\ActionController {
    public function editAction(Post $post) {
        ...
    }
}

Но как насчет случая использования, когдау вас есть флажки, каждый из которых представляет определенный объект?Также было бы полезно их автоматически установить:

<input type="checkbox" name="tags[]" value="1" />
<input type="checkbox" name="tags[]" value="2" />
...

Есть ли способ указать FLOW3 на автоматическое создание переменной $tags в виде массива объектов Tag?Что-то вроде:

public function setTagsAction(Post $post, /** @var Model\Tag */ array $tags) {
    $post->setTags($tags);
}

Ответы [ 2 ]

2 голосов
/ 27 ноября 2013
/**
 * @param Post $post
 * @param \Doctrine\Common\Collections\ArrayCollection<\your\namespace\Model\Tag> $tag
 */

public function setTagsAction(Post $post, $tags) { ...

afaik Doctrine преобразует ваш массив в коллекцию, содержащую объекты, сопоставленные с предоставленным массивом

0 голосов
/ 12 января 2014

удалить массив слов перед $ tags

...