奏鸣曲默认过滤器值

Sonata default filter value

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

我试过:

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

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

    return $parameters;
}

以及 array_merge 代替。其中 None 达到了我的要求,它仍然只显示 default/entire 列表。

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

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

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

所以完整的方法是:

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

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

    return $parameters;
}