我有一个Car类的对象的管理类。该对象与个人或组织有关。
我知道如何为“人员和组织”添加一列,并且我有一个指向编辑对象的链接
$listMapper
->add('person', null, array('admin_code' => 'appli.admin.person'))
->add('factory', null, array('admin_code' => 'appli.admin.factory'))
Run Code Online (Sandbox Code Playgroud)
这将创建一个链接(
但是我只想要一列。我做这个:
$listMapper->add('name',null,array('label'=>'Name','template'=>'AcmeBundle:Admin/Car/list_name.html.twig'))
Run Code Online (Sandbox Code Playgroud)
但是在我的模板中,我想要这样的东西,但是我不明白如何建立指向编辑对象的链接:
{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
{% block field%}
{% if object.getPerson %}
{% set urlObject = 'linkToAdminEditPerson' %}
{% elseif object.getFactory %}
{% set urlObject = 'linkToAdminEditFactory' %}
{% endif %}
<a href="{{ urlObject }}">{{ object.name }}</a>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
谢谢
假设两个对象都有一个name属性:
{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
{% block field %}
{% if object.getPerson is defined %}
{% set objectRoute = 'person_edit' %}
{% elseif object.getFactory is defined %}
{% set objectRoute = 'factory_edit' %}
{% endif %}
<a href="{{ path(objectRoute, { id: object.id }) }}">{{ object.name }}</a>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
请注意,sonata admin捆绑包将基于$baseRouteNameadmin类的属性创建编辑路径,并添加操作名称。