Symfony 奏鸣曲媒体组合中一个练习的多种媒体

Symfony 奏鸣曲媒体组合中一个练习的多种媒体,symfony,doctrine-orm,sonata-media-bundle,Symfony,Doctrine Orm,Sonata Media Bundle,我正面临索纳塔媒体包的奇怪问题 基本上,我有一个可以有很多图片的练习 我对Exercice(法语)的映射是: 然后我转到Application/sonana/MediaBundle/Entity/Media.php并添加一个字段$exercice: namespace Application\Sonata\MediaBundle\Entity; use Sonata\MediaBundle\Entity\BaseMedia as BaseMedia; use Doctrine\ORM\Mapp

我正面临索纳塔媒体包的奇怪问题

基本上,我有一个可以有很多图片的练习

我对Exercice(法语)的映射是:

然后我转到Application/sonana/MediaBundle/Entity/Media.php并添加一个字段$exercice:

namespace Application\Sonata\MediaBundle\Entity;

use Sonata\MediaBundle\Entity\BaseMedia as BaseMedia;
use Doctrine\ORM\Mapping as ORM;


class Media extends BaseMedia
{
    /**
     * @var integer $id
     */
    protected $id;

    /**
     * @var
     * @ORM\ManyToOne(targetEntity="Acme\AcmeBundle\Entity\Exercice", inversedBy="medias")
     */
    private $exercice;
发生的奇怪事情:

  • 运行时:
    php应用程序/控制台原则:生成:实体应用程序\Sonata\MediaBundle:Media
    在媒体实体中,我没有看到任何用于练习的setter或getter。
  • 我在探查器中遇到此错误:
  • Acme\AcmeBundle\Entity\Exercice#medias所指的关联 拥有方字段 应用程序\Sonata\MediaBundle\Entity\Media#exercice,不包含 存在

    配置的相关部分:

    orm: 自动生成代理类:“%kernel.debug%” 自动映射:true 映射: 应用程序名称绑定:~ 钻石奏鸣曲:~

    我做错了什么

    谢谢

    好的,找到了解决方案。 我必须修改xml文件中的映射:

    src/Application/Sonata/MediaBundle/Resources/config/doctrine/Media.orm.xml
    
    我补充说:

    <many-to-one field="exercice" inversed-by="medias" target-entity="Acme\AcmeBundle\Entity\Exercice" />
    
    
    
    它工作得很好

    <many-to-one field="exercice" inversed-by="medias" target-entity="Acme\AcmeBundle\Entity\Exercice" />