我知道您可以通过在显示视图中引用child.field来添加Sonata admin中子视图的字段,但这仅适用于一对一的关系。我有一个父母 - 许多 - 孩子关系。 这不起作用:
<?php $showMapper->add('child', 'sonata_type_model',array(), array(
'edit' => 'inline',
'inline' => 'table',
))
虽然它非常适合formMapper。你应该怎么做?如果是通过树枝视图,请给我一个例子。
对于ShowMapper
,你只需要做$showMapper->add('child');
但是,大多数情况下它只会显示指向子对象的链接。
正如您所建议的,您也可以使用
$formMapper->add('child.field');
但它不适用于集合
若要在拥有集合时自定义呈现,可以创建自己的模板扩展SonataAdminBundle:CRUD:base_show_field.html.twig
在模板中,您的子对象将位于value
变量中,您可以循环显示每个元素
然后添加指定模板的字段
$showMapper->add('children', null, array('template' =>'MyBundle:CRUD:MyCustomTemplate.html.twig'));