Symfony - 映射彼此不一致

Tig*_*ran 7 php doctrine symfony doctrine-orm

我有2个实体,用户和追随者.

/**
 * @ORM\Entity
 * @ORM\Table(name="users")
 */
class User extends BaseUser
{
    /**
     * @ORM\OneToMany(targetEntity="Follower", mappedBy="user")
     */
    protected $followers;

    /**
     * @ORM\OneToMany(targetEntity="Follower", mappedBy="follower")
     */
    protected $followings;
}


/**
 * @ORM\Entity
 * @ORM\Table(name="follows")
 */
class Follower
{        
    /**
     * @ORM\ManyToOne(targetEntity="User", inversedBy="followers")
     */
    protected $user;

    /**
     * @ORM\ManyToOne(targetEntity="User", inversedBy="followers")
     */
    protected $follower;
}
Run Code Online (Sandbox Code Playgroud)

用户有关注者($粉丝)和关注者($ followers).

我不知道为什么,但我的开发者说:

映射AppBundle\Entity\User#followings和AppBundle\Entity\Follower#follower彼此不一致.

映射AppBundle\Entity\Follower#follower和AppBundle\Entity\User#followers彼此不一致.

为什么他们不存在而应该这样做?

Mat*_*teo 13

在Follower Entity中,替换为:

/**
 * @ORM\ManyToOne(targetEntity="User", inversedBy="followers")
 */
protected $follower;
Run Code Online (Sandbox Code Playgroud)

有:

/**
 * @ORM\ManyToOne(targetEntity="User", inversedBy="followings")
 */
protected $follower;
Run Code Online (Sandbox Code Playgroud)

您可以使用命令doctrine:schema:validate检查当前映射是否有效的正向和反向映射.

php app/console doctrine:schema:validate

希望这有帮助

  • 对我来说,这是`php bin / console doctrine:schema:validate`。 (3认同)
  • 嗨@DanChaltiel.谢谢你的贡献.您指的是框架版本3的文件夹结构.这是关于v2的老答案. (2认同)