Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony2表单验证-此值无效_Symfony_Symfony Forms - Fatal编程技术网

Symfony2表单验证-此值无效

Symfony2表单验证-此值无效,symfony,symfony-forms,Symfony,Symfony Forms,我在Symfony中得到了一个表单,但它无法验证,我不知道为什么 来自UserBundle/Entity/Task.php /** * * @ORM\ManyToMany(targetEntity="Project\TaskBundle\Entity\Task", inversedBy="users") * @ORM\JoinTable(name="project_users_tasks") * */ protected $tasks; 来自UserBundle/Form/Crea

我在Symfony中得到了一个表单,但它无法验证,我不知道为什么

来自UserBundle/Entity/Task.php

/**
 *
 * @ORM\ManyToMany(targetEntity="Project\TaskBundle\Entity\Task", inversedBy="users")
 * @ORM\JoinTable(name="project_users_tasks")
 * 
 */
protected $tasks;
来自UserBundle/Form/CreateUserFormType.php,它是我的formbuilder:

 $builder->add('tasks', 'entity', array(
            'class' => 'TaskBundle:Task',
            'query_builder' => function(EntityRepository $er) {
                return $er->createQueryBuilder('b')
                ->andWhere('b.owner = :owner')
                ->setParameter('owner', $this->securityContext->getToken()->getUser())
                ->addOrderBy('b.updated', 'ASC');
            },
            'expanded' => false,
            'multiple' => false
            ));
我的浏览器中的post请求:

------WebKitFormBoundary6IBT2Ycy78N9AI7u
Content-Disposition: form-data; name="createUser[tasks][]"

14
我得到的表单结果是关于任务的错误: “此值无效”

我没有得到任何其他的验证。那么为什么不能将任务14(例如清洁盘子)分配给我的用户呢?我的意思是任务的id是否应该工作

编辑: Symfony似乎无法识别数据,这就是为什么。打印$form->getData()


但这怎么可能呢?我可以看到我的浏览器正在发布数据。

乍一看,您提交的字段名中有两个括号太多:
createUser[tasks][]
应该是
createUser[tasks]
,因为实体字段是折叠的单值实体字段

还要尝试调试Symfony的请求对象
var\u dump($request->request->get('createUser'))
应该返回如下内容

array(
    'tasks' => 14,
)
array(
    'tasks' => array(
        0 => 14,
    )
)
另一方面,如果确实要提交一个或多个任务,请将实体字段上的“多个”选项设置为
true
。那么请求数据应该是

array(
    'tasks' => 14,
)
array(
    'tasks' => array(
        0 => 14,
    )
)

您提交表单时是否有id=14的分支机构?对不起,我在那里输入错误。这实际上是一项任务,但是的,我在提交表单时有一项id=14的任务。嗯。。当前用户(在表单显示和表单提交操作中)是id=14的任务的所有者吗?我们如何检查任务失败的地方?是否有表单验证的日志?