Делаю админ панель в SonataAdminBundle. В действии User show у меня есть полевые компании, которые возвращают массив компаний, назначенных пользователю. Это отношение OneToMany. UserCompany имеет user_id и company_id. Я хочу создать ссылку для каждого возвращаемого имени компании, которая указывает на действие его объекта. Это код из функции configureShowFields() в классе UserAdmin:
->with('Assigned organizers',['class' => 'col-md-6'])
->add('companies', null, [
'label' => 'Organizers',
])
->end()
Мне удалось создать ссылку в строковом поле, указывающую на отображение действия объекта, но свойство id берется из текущего представления объекта:
->with('Address', ['class' => 'col-md-6'])
->add('userProfile.locality', 'url', [
'route' => [
'name' => 'admin_app_employee_show',
'identifier_parameter_name' => 'id'
],
'label' => 'Localiy',
])
Более того, Sonata Admin создает ссылки на связанные поля, когда связь прямая, например: В компании много сотрудников. Затем в поле «Компания» показать действие в поле «Сотрудники» я вижу массив со ссылками, уже ведущими к редактированию действия объекта «Сотрудник».
Возможно, есть возможность переопределить шаблон для этого поля, но мне это кажется неясным, так как в документации нет более сложных примеров. Вот как я пытался проверить переопределение шаблона поля:
->add('userProfile.street', null, array(
'label' => 'Street',
'template' => 'custom-field.html.twig',
))
Расположение шаблона: App/templates/Admin/
Любая помощь приветствуется