我必须实体用户和地址。我的任务是在Doctrine的帮助下将他们多对一地联系起来。 Methode get Address仅返回地址的id,没有别的 班级用户
class User{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var Address
* @ORM\@ManyToOne(targetEntity="\AppBundle\Entity\Address", mappedBy="user")
*/
protected $addressData;
/**
* @return \AppBundle\Entity\Address
*/
protected function getAddress(){
return $this->addressData;
}
和类地址
class Address{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @OneToMany(targetEntity="AppBundle\Entity\User", inversedBy="addressData")
* JoinColumn(name="address",referencedColumnName = "id")
*/
protected $users;
public function __construct()
{
$this->users = new ArrayCollection();
}
我不能把他们关系
答案 0 :(得分:0)
通过实施,一个地址可以拥有多个用户。 如果您想要反转,请反转您的映射并重新生成您的实体。
在每种情况下,不要忘记:
$ php app/console doctrine:generate:entities
然后,当你的实体中有所有的getter和setter时:
如果您想在控制器操作中为用户添加地址,请执行以下操作:
$em = $this->getDoctrine()->getEntityManager();
$user = new User(); // Create a new user
$em->persist($user); // P1ersist new user
$address = new Address() // Create a new address
$address->addUser($user); // Add address to newly created user;
$em->persist($address); // Persist the newly created address
$em->flush(); // Flush all in DB
用于从地址检索用户:
$address->getUsers();
或从用户
检索地址$user->getAddress();
希望这是你需要的