Mam Entity User ( przez pakiet Fos User):
/** * @ORM\Entity * @ORM\Table(name="fos_user") */ class User extends BaseUser { /** * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="AUTO") * @ORM\OneToOne(targetEntity="Userinfo", inversedBy="User") */ public $id; public function __construct() { parent::__construct(); } }
I Drugi Entity dla którego będzie relacją:
namespace AppBundle\Entity; use Doctrine\ORM\Mapping as ORM; use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; /** * Userinfo * * @ORM\Table(name="user_info") * @ORM\Entity(repositoryClass="AppBundle\Repository\UserinfoRepository") * @UniqueEntity("id_user") */ class Userinfo { /** * @var int * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @ORM\OneToOne(targetEntity="User", inversedBy="Userinfo") * @ORM\JoinColumn(name="id", referencedColumnName="id") */ public $user; /** * @var string * * @ORM\Column(name="address", type="string", length=255) */ private $address; /** * @var string * * @ORM\Column(name="phone_number", type="integer") */ private $phone_number; /** * @var int * * @ORM\Column(name="id_user", type="integer") */ private $id_user; /** * Get id * * @return integer */ public function getId() { return $this->id; } /** * Set id_user * * @param integer $id_user * @return Userinfo */ public function setId_user($id_user) { $this->id_user = $id_user; return $this; } /** * Get id_user * * @return integer */ public function getId_user() { return $this->id_user; } /** * Get user * * @return User */ public function getUser() { return $this->user; } }
I próbuje wyciągnąć dane w kontrolerze :
$userinfo = $this->getDoctrine() ->getRepository(Userinfo::class) ->find(2); $id = $userinfo->getUser()->getId();
Niestety nie idzie. Zaznaczam, że tabela Userinfo zawiera kolumnę id_user , która ma być relacją do tabeli User dla klucza id