【问题标题】:Sonata default filter value奏鸣曲默认过滤器值
【发布时间】:2019-08-18 00:14:11
【问题描述】:

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

我试过了:

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】:

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

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

    所以完整的方法是:

    public function getFilterParameters()
    {
        $parameters = parent::getFilterParameters();
    
        $parameters['assignee'] = [
            'value' => $this->getUser()->getId(),
        ];
    
        return $parameters;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-29
      • 2017-10-11
      • 1970-01-01
      • 2019-05-17
      • 2017-04-27
      • 2013-12-04
      • 2015-03-20
      • 2019-02-28
      相关资源
      最近更新 更多