#symfony #sonata-admin #sonata #symfony-sonata
#symfony #sonata-администратор #sonata #symfony-sonata
Вопрос:
В моем методе есть свойство, 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
. Для того, чтобы приведенный выше фрагмент кода работал, вы должны присвоить значение идентификатору пользователя, а не пользовательскому объекту, вот так: 'value' => $this->getUser()->getId()
.
Таким образом, полный метод будет:
public function getFilterParameters()
{
$parameters = parent::getFilterParameters();
$parameters['assignee'] = [
'value' => $this->getUser()->getId(),
];
return $parameters;
}