Получить идентификатор текущего элемента в Admin::configureListFields
Как получить текущий идентификатор объекта в Admin::configureListFields
?
$this->getSubject()
возвращается null
Спасибо
1 ответ
Поскольку в списке много объектов, ваш вопрос не имеет смысла. Я пойду вперед и предположу, что вы в детском админе. Если это так, я думаю, что вы ищете $this->getParent()->getSubject()->getId()
Судя по тому, как вы сформулировали свой вопрос, я предполагаю, что вы столкнулись с той же проблемой, что и я.
Мое предположение таково: вы хотите использовать configureListFields
манипулировать содержимым строк списка / "текущего" элемента.
Как отметил greg0rie - здесь есть заблуждение, что нет "текущего" элемента.
В частности - configureListFields
s вызывается перед повторением списка для вывода, поэтому текущий элемент не существует.
Более того, насколько я могу судить, не существует метода, который мы можем перезаписать, который вызывается специально при повторении списка.
Поэтому в итоге я сделал следующее:
Сначала перезапишите шаблон веточки тем, что вы хотите изменить в списке.
Затем создайте функцию расширения Twig и передайте свойства "admin" и "object", которые должны быть доступны на уровне шаблона на этом этапе:
{{ myTwigFunction(admin, object) }}
admin
- это экземпляр администратора сонаты, отображающего список.
object
это текущий шаблон.
Таким образом, теперь у вас есть доступ к текущему объекту сущности, а также к администратору сонаты, который его обрабатывает.
Лично я затем передал это в службу для генерации изменений, которые я хотел внести.