Sonata默认过滤值

问题描述 投票:0回答:1

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

我试过了:

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

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

    return $parameters;
}

而且还有一个array_merge。他们都没有达到我所追求的目标,它仍然只显示默认/整个列表。

我试过添加一个类型,有点不清楚类型是什么,我见过的一些例子像EntityType::class和其他只是一个数字3

symfony sonata-admin sonata symfony-sonata
1个回答
0
投票

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

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

所以完整的方法是:

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

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

    return $parameters;
}
© www.soinside.com 2019 - 2024. All rights reserved.