我使用的很好
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver
->setDefaults(array(
'category' => null,
'query_builder' => function(EntityRepository $er) {
$qb = $er->createQueryBuilder('u');
if ($someCondition) {
$qb->where('u.id = $options['id']);
}
return $qb;
有没有办法做到这一点,因为我不想在buildform中做,因为我在多个位置使用它
答案 0 :(得分:0)
setDefaultOptions
旨在初始化选项,最终会被真实传递的选项覆盖,因此您无法访问$options
变量。
如果你需要根据运行时值有不同的默认行为,你仍然可以定义一个管理它的方法,但是必须在buildform期间手动调用它(最终你可以定义一个抽象的buildform并在那里调用那个函数,然后扩展类将不得不调用parent :: buildForm。