My relation between 2 entities is a OneToOne relation.
1) User Entity:
<?php namespace App\Entity; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity(repositoryClass="App\Repository\UserRepository") */ class User { /** * @ORM\Id() * @ORM\GeneratedValue() * @ORM\Column(type="integer") */ private $id; /** * @var $userContact * * @ORM\OneToOne(targetEntity="UserContact" , inversedBy="User") * @ORM\JoinColumn(name="id", referencedColumnName="user_id", nullable=false) **/ private $userContact; /** * @ORM\Column(type="string", length=255) */ private $last_name; public function getId() { return $this->id; } public function getLastName(): ?string { return $this->last_name; } public function setLastName(string $last_name): self { $this->last_name = $last_name; return $this; } } - UserContact Entity:
class UserContact { /** * @var integer * * @ORM\Column(name="id", type="integer") * @ORM\Id() * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @ORM\Column(type="integer") */ private $user_id; /** * @ORM\OneToOne(targetEntity="User", inversedBy="UserContact") */ private $user; /** * @ORM\Column(type="string", length=255) */ private $mobile_number; public function getId() { return $this->id; } public function getUserId(): ?int { return $this->user_id; } public function setUserId(int $user_id): self { $this->user_id = $user_id; return $this; } public function getMobileNumber(): ?string { return $this->mobile_number; } public function setMobileNumber(string $mobile_number): self { $this->mobile_number = $mobile_number; return $this; } } My User Repository looks like this:
class UserRepository extends ServiceEntityRepository { public function index() { return $this->createQueryBuilder('u') ->innerJoin('u.userContact', 'uc') ->getQuery() ->execute(); } } And the controller looks like this:
public function index() { $users = $em->getRepository('App:User')->index(); } It's throwing an error like this one:
Missing value for primary key id on App\Entity\UserContact
UserandUserContactentitiesOneToOneexpects that column set inreferencedColumnName(user_idin your case) is a Primary Key. Try move (and/or add)@ORM\Id()inUserContacttouser_id