如何嵌入一个到多个奏鸣曲管理员的子视图

时间:2017-03-08 15:10:25

标签: php symfony sonata-admin

我知道您可以通过在show视图中引用child.field的点来在sonata admin中添加子视图的字段,但这仅适用于一对一关系。我有一个父母 - 多孩子的关系。 这不起作用:

<?php $showMapper->add('child', 'sonata_type_model',array(), array(
                'edit' => 'inline',
                'inline' => 'table',
                ))

虽然它对formMapper非常有用。你怎么这么做的?如果是通过树枝视图,请举个例子。

1 个答案:

答案 0 :(得分:1)

对于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'));