如何在Sonata Admin Bundle中为configureListField添加过滤器(createQuery方法)

时间:2017-05-05 10:34:47

标签: php symfony sonata-admin symfony-sonata sonata

这是我的ConfigureListFild

enter image description here

我想在条件示例ConfigureListFields中显示我的帐户数据(其中type =' client')

protected function configureListFields(ListMapper $listMapper)
{
    // ... configure $listMapper
    $listMapper
        ->addIdentifier('raison_sociale')
        ->add('type')
        ->add('category.name')
        ->add('portable')
        ->add('ville_fac')
        ->add('professionnel')
        ->add('_action', 'actions', array(
        'actions' => array(
            'show' => array(),
            'edit' => array(),
            'delete' => array(),
        )
    ))
    ;
}

你可以帮助我按类型显示帐户列表="客户" ??

1 个答案:

答案 0 :(得分:2)

您需要在管理类中覆盖类似的createQuery方法;

public function createQuery($context = 'list')
{
        $query = parent::createQuery($context);
        $rootAlias = $query->getRootAliases()[0];

        $query->andWhere(
            $query->expr()->eq($rootAlias.'.type', ':type')
        );

        $query->setParameter(':type', 'Client');

        return $query;
}