奏鸣曲默认滤波器值

时间:2019-03-27 12:18:44

标签: symfony sonata-admin sonata symfony-sonata

我的方法configureDatagridFilters()中有一个称为受理人的属性。首次加载管理员的列表视图时,我想将此属性的值设置为当前用户。

我尝试过:

public function getFilterParameters()
{
    $parameters = parent::getFilterParameters();

    $parameters['assignee'] = [
        'value' => $this->getUser(),
    ];

    return $parameters;
}

以及array_merge。他们都没有实现我的目标,它仍然只是向我显示默认/完整列表。

我尝试添加一个类型,但不清楚类型是什么,因为我看到的一些示例像EntityType::class,而其他例子只是数字3

1 个答案:

答案 0 :(得分:0)

因此,我想出了如何将过滤器默认设置为当前用户。

我的过滤器是一个EntityType::class类的User::class。为了使上面的代码段起作用,您必须将值设置为用户ID而不是用户对象,例如:'value' => $this->getUser()->getId()

因此完整的方法是:

public function getFilterParameters()
{
    $parameters = parent::getFilterParameters();

    $parameters['assignee'] = [
        'value' => $this->getUser()->getId(),
    ];

    return $parameters;
}