与sonata_type_admin的OneToOne关系:未链接到管理员的字段

时间:2014-11-23 14:57:51

标签: symfony sonata-admin

我安装了Sonata Admin软件包来管理在线图书馆。我只想将imageauthor相关联。

映射是正确的: [Mapping] OK - 映射文件正确。 [数据库]正常 - 数据库架构与映射文件同步。

这是我的author实体的字段:

/**
 *
 * @ORM\Column(name="image", type="string", length=255)
 * @ORM\OneToOne(targetEntity="Project\BackendBundle\Entity\Image", cascade={"persist"})
 * @ORM\JoinColumn(nullable=false)
 */
private $image;

我为每个实体创建一个Admin类:

AuthorAdmin.php

class AuthorAdmin extends Admin
{
    // Fields to be shown on create/edit forms
    protected function configureFormFields(FormMapper $formMapper)
    {
        $formMapper
            ->add('name', 'text', array('label' => 'Author name'))
            ->add('image', 'sonata_type_admin')
        ;
    }

    // Fields to be shown on filter forms
    protected function configureDatagridFilters(DatagridMapper $datagridMapper)
    {
        $datagridMapper
            ->add('name')
        ;
    }

    // Fields to be shown on lists
    protected function configureListFields(ListMapper $listMapper)
    {
        $listMapper
            ->addIdentifier('name')
        ;
    }
}

但我总是有这样的信息:

  

当前字段image未链接到管理员。请创建一个   对于目标实体:``

管理员设置在admin.yml:

services:
    sonata.admin.author:
        class: Project\BackendBundle\Admin\AuthorAdmin
        tags:
            - { name: sonata.admin, manager_type: orm, group: "Content", label: "Author" }
        arguments:
            - ~
            - Project\BackendBundle\Entity\Author
            - ~

    sonata.admin.image:
        class: Project\BackendBundle\Admin\ImageAdmin
        tags:
            - { name: sonata.admin, manager_type: orm, group: "Content", label: "Image" }
        arguments:
            - ~
            - Project\BackendBundle\Entity\Image
            - 'SonataAdminBundle:CRUD'

我遵循了所有文档,但现在我没有看到问题。

1 个答案:

答案 0 :(得分:4)

您的映射不正确。不应该有这样的界限。

@ORM\Column(name="image", type="string", length=255)

@ORM\Column会覆盖@ORM\OneToOne,而Doctrine会将此字段视为简单字段,而不是关联字段。

http://doctrine-orm.readthedocs.org/en/latest/reference/annotations-reference.html#annref-onetoone