1

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

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

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

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

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

4

1 回答 1

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 使用哪个管理类。

于 2013-07-31T09:32:43.327 回答