奏鸣曲默认过滤器值
Posted
技术标签:
【中文标题】奏鸣曲默认过滤器值【英文标题】: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
。
【问题讨论】:
【参考方案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;
【讨论】:
以上是关于奏鸣曲默认过滤器值的主要内容,如果未能解决你的问题,请参考以下文章