我在我的symfony2项目中有一个表单,在其中我要向构建器添加一个新的表单元素:
$builder->add('section', 'entity', array(
'class' => 'SciForumVersion2Bundle:Section',
'label' => 'Section',
'property' => 'name',
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('s')
->where('s.conference = conference')
->setParameter('conference', $conference);
},
));$conference变量来自控制器,我在FormType中设置这个变量:
private $conference;
public function __construct($conference)
{
$this->conferenceObject = $conference;
}但是,我得到了错误消息:
ContextErrorException: Notice: Undefined variable: conference in ....行号指向这条线:
->setParameter('conference', $conference);在使用时
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('s')
->where('s.conference = :conference')
->setParameter('conference', $this->conference);
},我收到以下错误消息:
FatalErrorException: Error: Using $this when not in object context in..有什么想法吗?谢谢。
发布于 2014-03-05 15:59:30
在FormType __construct()中,要设置的类变量名中有一个错误:
public function __construct($conference)
{
$this->conference = $conference;
}在query_builder参数中,使用类变量作为值,并在DQL部分中使用前缀参数名称“:”:
$conference = $this->conference;
$builder->add('section', 'entity', array(
'class' => 'SciForumVersion2Bundle:Section',
'label' => 'Section',
'property' => 'name',
'query_builder' => function(EntityRepository $er) use ($conference) {
return $er->createQueryBuilder('s')
->where('s.conference = :conference')
->setParameter('conference', $conference);
},
));发布于 2014-03-05 15:53:35
这条线正在产生误差。
->where('s.conference = $conference')我会是那样的
->where('s.conference = conference')https://stackoverflow.com/questions/22202543
复制相似问题