FLOW3动作参数和对象数组

Ben*_*min 78 php model-view-controller orm typo3-flow

FLOW3提供了一种方便的方法来通过URL中的ID传递实体,并在控制器操作的参数中自动实例化它们:

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

但是你有复选框的用例怎么样,每个复选框代表一个特定的对象?将它们自动实例化也很方便:

<input type="checkbox" name="tags[]" value="1" />
<input type="checkbox" name="tags[]" value="2" />
...
Run Code Online (Sandbox Code Playgroud)

有没有办法告诉FLOW3将$tags变量自动实例化为一个Tag对象数组?就像是:

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

小智 2

/**
 * @param Post $post
 * @param \Doctrine\Common\Collections\ArrayCollection<\your\namespace\Model\Tag> $tag
 */

public function setTagsAction(Post $post, $tags) { ...
Run Code Online (Sandbox Code Playgroud)

afaik Doctrine 会将您的数组转换为包含由提供的数组映射的对象的集合