Получить идентификатор текущего элемента в Admin::configureListFields

Как получить текущий идентификатор объекта в Admin::configureListFields?

$this->getSubject() возвращается null

Спасибо

1 ответ

Поскольку в списке много объектов, ваш вопрос не имеет смысла. Я пойду вперед и предположу, что вы в детском админе. Если это так, я думаю, что вы ищете $this->getParent()->getSubject()->getId()

Судя по тому, как вы сформулировали свой вопрос, я предполагаю, что вы столкнулись с той же проблемой, что и я.

Мое предположение таково: вы хотите использовать configureListFields манипулировать содержимым строк списка / "текущего" элемента.

Как отметил greg0rie - здесь есть заблуждение, что нет "текущего" элемента.

В частности - configureListFields s вызывается перед повторением списка для вывода, поэтому текущий элемент не существует.

Более того, насколько я могу судить, не существует метода, который мы можем перезаписать, который вызывается специально при повторении списка.

Поэтому в итоге я сделал следующее:

Сначала перезапишите шаблон веточки тем, что вы хотите изменить в списке.

Затем создайте функцию расширения Twig и передайте свойства "admin" и "object", которые должны быть доступны на уровне шаблона на этом этапе:

{{ myTwigFunction(admin, object) }}

admin - это экземпляр администратора сонаты, отображающего список.

object это текущий шаблон.

Таким образом, теперь у вас есть доступ к текущему объекту сущности, а также к администратору сонаты, который его обрабатывает.

Лично я затем передал это в службу для генерации изменений, которые я хотел внести.

Другие вопросы по тегам