我想連接2個實體,我遇到了麻煩。 我有兩個類:用戶和性別。 每個用戶來自同一性別(男性或女性)。在我的數據庫中,我有兩個這種結構的表格:創建實體之間的關聯原則2
user(**id**, firstName, gender);
gender(**id**, type);
現在我在我的系統中創建了兩個實體。 user.php的和Gender.php
用戶
<?php
/**
* @Entity @Table(name="User")
**/
class User
{
/**
* @Id @Column(type="integer") @GeneratedValue
**/
private $id;
/**
* @Column(type="string")
**/
private $firstName;
/**
* @Column(type="string")
* @ManyToOne(targetEntity="Gender")
* @JoinColumn(name="type", referencedColumnName="type")
* @var Gender[]
**/
private $gender;
public function __construct($content) {
$this->setContent($content);
}
/**
* @return int
*/
public function getId() {
return $this->id;
}
/**
* @return string
*/
public function getFirstName() {
return $this->firstName;
}
/**
* @return int
*/
public function getGender() {
return $this->gender;
}
/**
* @param string $content
*/
public function setFirstName($content) {
$this->firstName = (string) $content;
}
/**
* @param string $content
*/
public function setGender($content) {
$this->gender = (string) $content;
}
}
性別
<?php
/**
* @Entity @Table(name="Gender")
**/
class Gender
{
/**
* @Id @Column(type="integer") @GeneratedValue
**/
private $id;
/**
* @OneToMany(targetEntity="User", inversedBy="gender")
* @JoinColumn(name="gender", referencedColumnName="gender")
* @Column(type="string")
**/
private $type;
/**
* @param integer $content
*
*/
public function getId() {
return $this->id;
}
/**
* @param string $content
*
*/
public function getType() {
return $this->type;
}
/**
* @param string $content
*/
public function setGender($content) {
$this->gender = (string) $content;
}
}
我想是讓性別類型,當我得到一個用戶,所以這兩個實體必須通過連接性別類型屬性。 我試圖這樣做與@ManyToOne或@JoinColumn功能,但我無法得到它。
我該怎麼辦?我做錯了什麼? 謝謝!
我已經做到了,但是......我應該在哪裏得到性別類型?在獲取數據後:$ dql =「選擇一個FROM用戶a」; $ query = $ em-> createQuery($ dql); $ query-> setMaxResults(30); $ users = $ query-> getResult(); 如果我做一個print_r($ users);我不明白。 – Alvaro 2012-07-18 18:30:22
對不起,我編輯了這篇文章。 – 2012-07-18 18:31:23
我已經做到了,但現在...我在哪裏看到類型數據?我不明白它的$ users變量。我如何訪問Gender類數據? – Alvaro 2012-07-18 18:53:46