getParameter 方法中未定义的变量
Posted
技术标签:
【中文标题】getParameter 方法中未定义的变量【英文标题】:variable undefinded in setParameter method 【发布时间】:2014-03-11 16:10:53 【问题描述】:我在控制器中有下一个代码来处理表单,但我收到一条错误消息,显示“未定义的变量:页面”。虽然$page['community']
之前定义过。
这是代码:
$form = $this->createFormBuilder()
->add('banish', 'entity', array(
'label' => $this->trans("Usuarios a expulsar"),
'class' => 'Pro\MembershipBundle\Entity\Membership',
'query_builder' => function(EntityRepository $er)
return $er->createQueryBuilder('SELECT m FROM User u INNER JOIN Membership m ON m.user = u.id WHERE m.community = :community')
->setParameter('community', $page['community']);
,
))
->getForm();
这里会发生什么,以及如何解决?
【问题讨论】:
$page
来自哪里?
@Touki - $page['community']
是一个包含 Community
实体的对象。
您发布的代码中没有任何地方引用$page
。我假设它是 before $form
声明。尝试使用function(EntityRepository $er) use ($page)
@Touki - 我试过了,但我收到了这个错误; " [语法错误] 第 0 行,第 7 列:错误:预期的 IdentificationVariable | ScalarExpression | AggregateExpression | FunctionDeclaration | PartialObjectExpression | "(" Subselect ")" | CaseExpression, got 'SELECT' "
嗯,这是另一个问题,与这个问题无关。
【参考方案1】:
我认为如果您使用 createQuery instaedof 查询构建器,它将解决 或者干脆
$er->createQueryBuilder()
->select('m')
->from('RedconviveMembershipBundle:User','u')
->innerJoin('u.membership','m')
->where('m.comunity = :comunity')
->setParameter('community', $page['community']);
如果你能写出你的联想,那么找到解决方案会更容易
【讨论】:
以上是关于getParameter 方法中未定义的变量的主要内容,如果未能解决你的问题,请参考以下文章
Discord.js - 无法读取 execute() 方法中未定义的属性
未捕获的类型错误:无法读取 VueJs 中未定义的属性“get”
VueComponent.mounted:TypeError:无法读取挂载钩子中未定义的属性“get”