如何在同一个管理员中添加同一属性的两个sonata_type_collection字段?

时间:2013-07-30 13:15:45

标签: symfony sonata-admin

假设您有ArticleAdminCommentsAdmin。在Sonata中添加一对多编辑很容易:

$formMapper->add('comments', 'sonata_type_collection',
    array(
        'by_reference' => false,
    ),
    array(
        'edit'   => 'inline',
        'inline' => 'table',
    )
);

但是,假设我有更复杂的CommentsAdmin形式,它可以有两个可视化,具体取决于其中的注释类型。我想在ArticleAdmin中显示两个sonata_type_collection字段,用于将不同类型的注释分组到两个不同的编辑表中。

添加其他add('comments', ...)当然是不正确的,添加add('comments2', ...)会导致异常。

我将管理在admin中的两个字段之间分隔注释,但如何在虚拟实体字段sonata_type_collection上创建Article::comments2字段?如何告诉Sonata Admin它应该是什么类型的收藏?

1 个答案:

答案 0 :(得分:1)

我不确定这对你有帮助,但是:

->add('categoryHasMedia', 'sonata_type_collection', array(
                'cascade_validation' => true,
                'label'             => 'Logo\'s'
            ), array(
                'edit'              => 'inline',
                'inline'            => 'table',
                'link_parameters'   => array('context' => $context),
                'admin_code'        => 'appstrakt.project.admin.category_has_media',
            ))

如果我没有弄错的话,通过使用admin_code,您可以告诉您要为该sonata_type_collection使用哪个管理类。