I have 2 Entities, User and Follower.
/**
* @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;
}
User have followers ($followers) and followings ($followings).
I'm not sure why, but my dev profiler says:
The mappings AppBundle\Entity\User#followings and AppBundle\Entity\Follower#follower are inconsistent with each other.
The mappings AppBundle\Entity\Follower#follower and AppBundle\Entity\User#followers are inconsistent with each other.
Why they are incosistent and it should be done?
In the Follower Entity, replace this:
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="followers")
*/
protected $follower;
with:
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="followings")
*/
protected $follower;
You can use the command doctrine:schema:validate that checks the current mapping for valid forward and reverse mappings.
php app/console doctrine:schema:validate
Hope this help
You should replace followers by followings in :
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="followers")
*/
protected $follower;
But i think it's better to use ManyToMany associations on User Entity. You can try something like this :
/**
* @ORM\Entity
* @ORM\Table(name="users")
*/
class User extends BaseUser
{
/**
* @ORM\ManyToMany(targetEntity="User", mappedBy="followings")
*/
private $followers;
/**
* @ORM\ManyToMany(targetEntity="User", inversedBy="followers")
* @ORM\JoinTable(name="follows",
* joinColumns={@ORM\JoinColumn(name="following_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="follower_id", referencedColumnName="id")}
* )
*/
private $followings;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With