Php 在symfony2中将$options传递给表单生成器
我的表单生成器中有此代码Php 在symfony2中将$options传递给表单生成器,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,我的表单生成器中有此代码 ->add('user', 'entity', array( 'class' => 'Acme\Entity\User', 'query_builder' => function(EntityRepository $er) use ($options) { return $er->createQueryBuilder('u')
->add('user', 'entity', array(
'class' => 'Acme\Entity\User',
'query_builder' => function(EntityRepository $er) use ($options) {
return $er->createQueryBuilder('u')
->where('u.id = :id')
->setParameter('id',$options['my'])
->orderBy('u.name', 'ASC');},))
当我回显$options['my']
时,我会在构建器中以1
的形式获得输出。
现在,当我提交表单时,用户对象为NULL
但是如果我使用->setParameter('id',1)
,那么它就可以正常工作
现在如果我用这个
$options['test']=1
在生成表单中并使用
->setParameter('id',$options['test'])
那么它也可以正常工作
但是->setParameter('id',$options['my'])不能直接工作。它在表单中的响应与1一样好,所以值在该变量中
我该怎么办?这是一个常见的类型错误
1
在第一种情况下是字符串,在第二种情况下是int。如果这样做有效,请尝试:
->setParameter('id',intval($options['my']))
虽然您的调试非常好,但最好使用var\u dump
而不是echo
。您还可以将这些类型与gettype()
进行比较
比较var\u dump($options['my'])
与var\u dump($options[test'])
比较
gettype($options['my'])
和gettype($options['test'])
对于调试Symfony2应用程序,我非常喜欢ladybundle:希望它能帮助您以后的调试;)向你问好,克里斯托夫