2つのエンティティを接続しようとしていますが、問題が発生しています。ユーザーと性別の2つのクラスがあります。各ユーザーは、親切な性別(男性または女性)の出身です。私のデータベースには、この構造の2つのテーブルがあります。
user(**id**, firstName, gender);
gender(**id**, type);
これで、システムに2つのエンティティを作成しました。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機能を使用してこれを実行しようとしましたが、取得できませんでした。
どうすればいいですか?私が間違っていることは何ですか?ありがとう!