Значение фильтра Sonata по умолчанию

#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;
}