Symfony - The mappings are inconsistent with each other
Solution 1
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
Solution 2
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;
Tigran
Updated on June 19, 2022Comments
-
Tigran almost 2 years
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?
-
Dan Chaltiel over 7 yearsFor me it was
php bin/console doctrine:schema:validate
-
Matteo over 7 yearshi @DanChaltiel. Thanks for the contribution. You are referring on the folder structure of the version 3 of the framework. This is an old answer about the v2.