У меня есть форма в моем проекте 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..
Есть идеи? Спасибо.
use
, чтобы передать ееquery_builder
. РЕДАКТИРОВАТЬ: А, @PéCé уже отредактировал ответ;) 05.03.2014