Symfony2奏鸣曲集在编辑或显示中显示为空



当我创建一个产品时,我使用sonata_type_collection作为我的关系…它就像一个符咒,值被正确地插入到数据库中。

然而,如果我然后去我的产品上的显示或编辑,我没有得到任何错误,但值没有显示,就像我从未添加它们一样。

例如:

在我的产品中,我可以添加几个类别:

->add('category', 'sonata_type_collection',
                array(
                    'required' => false,
                    'label' => 'Category',
                ),
                array(
                    'edit' => 'inline',
                    'inline' => 'table',
                    //'sortable' => 'id',
                )
            )

我的ProductCategoryAdmin很简单:

/**
 * @param FormMapper $formMapper
 */
protected function configureFormFields(FormMapper $formMapper)
{
    $formMapper
        ->add('categoryId')
    ;
}

所以我给我的产品添加了2个类别并创建了它。它们被插入数据库。

现在如果我点击编辑产品,它会显示0个类别…为什么呢?除了这个类别集合,所有其他集合都工作正常。

数据库中的ProductCategory是否同时具有productId和categoryId ?如果您的产品类别在"显示"one_answers"编辑产品"中都没有显示,则似乎没有将productId插入到"产品类别"中。

我通常在sonata_type_collection上添加'by_reference' => false来强制调用所有setter。

官方文档关于by_reference: http://symfony.com/doc/current/reference/forms/types/collection.html#by-reference

有了它,你的代码将是:

->add('category', 'sonata_type_collection',
    array(
        'required' => false,
        'by_reference' => false,
        'label' => 'Category',
    ),
    array(
        'edit' => 'inline',
        'inline' => 'table',
        //'sortable' => 'id',
    )
)

另外,我要将字段命名为categories而不是category:)

相关内容

  • 没有找到相关文章

最新更新