如何访问symfony2中SetDefaultOptions中的$options变量


How can i access $options variable inside SetDefaultOptions in symfony2

我使用了这个精细的

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中这样做,因为我在多个位置使用

setDefaultOptions用于初始化选项,这些选项最终将被实际传递的选项覆盖,因此您无法访问那里的$options变量。

如果您需要根据运行时值有不同的默认行为,您仍然可以定义一个方法来管理它,但必须在构建表单期间手动调用该方法(最终您可以定义抽象构建表单并在那里调用该函数,那么扩展类将必须调用parent::buildform)。