Symfony handleRequest()与POST数据不匹配

时间:2014-02-15 08:58:13

标签: php forms symfony

最近刚回到Symfony(2.3.10)项目。我使用composer来更新所有包,我注意到form->handleRequest($request)

有一个奇怪的问题
$recipe = $query->getQuery(); 
$form = $this->createForm('recipe', $recipe); 
$form->handleRequest($request);

此表单已设置为添加/删除集合中的项目,例如tag示例:

http://symfony.com/doc/current/cookbook/form/form_collections.html

据我所知,这在更新之前按预期工作。 POST数据不包括我删除的项目,所以它是正确的。但是,当$request传递到表单处理程序时,$form->getData()仍会列出集合中的所有项目。

之前它已按预期删除了它们。

我已经用Google搜索到了死胡同,目前我循环查看POST数据以确定要从集合中删除的内容,即:

foreach ($originalRecipeTags as $key => $toCheck) {
    if (isset($postTags[$toCheck->getRecipeTagId()]) ) {
        unset($originalRecipeTags[$key]);
    } else {
        $recipe->removeRecipeTag($recipeTag);
        $em->remove($recipeTag);
    }
}

我想知道是否有人遇到过这个问题?这是一个已知的错误吗?任何帮助都会令人惊讶,因为我对目前的解决方案并不满意。

1 个答案:

答案 0 :(得分:1)

这是2.3.10中引入的已知错误:https://github.com/symfony/symfony/issues/10256