Witam. Otóż mam prosty problem jak dla ludzi , którzy robili relacje baz danych.
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\Component\Validator\Constraints
as Assert;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
Ten post edytował szypi1989 25.08.2018, 20:10:44