メンバー エンティティとフレンド エンティティがあります。テーブルに参加することで、メンバーのすべての友達を取得します。を介してフレンドのメンバーに参加しmember_id
ます。
テーブル構造:
メンバー
member_id, full_name, email, password, date_joined
友達
friendship_id, member_id, friend_id
full_name
すべて問題ありませんが、の を取得できませんfriend_id
。コマンド ラインを実行して、エンティティのゲッター、セッター、結合情報を生成しました。
小枝では、コントローラから友人の配列を取得し、呼び出すとfriend.fullName
友人の名前ではなく自分の名前が返されますが、それに参加しmember_id
たので問題ありません。
2 つのクエリなしで の ID を持つfullName
を取得する必要があります。member
friend_id
元。
member_id: 1, full_name:John
友達
member_id: 22, full_name:Billy
私は呼び出すことができfriend.friendId
、それは22を返します.fullName
メンバーエンティティ
<?php
namespace Pixbelly\AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
/**
* Pixbelly\AppBundle\Entity\Members
*
* @ORM\Table(name="members")
* @ORM\Entity(repositoryClass="Pixbelly\AppBundle\Repository\MembersRepository")
*/
class Members
{
/**
* @var integer $memberId
*
* @ORM\Column(name="member_id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $memberId;
/**
* @var string $fullName
*
* @ORM\Column(name="full_name", type="string", length=255, nullable=false)
*/
private $fullName;
/**
* @var string $email
*
* @ORM\Column(name="email", type="string", length=255, nullable=false)
*/
private $email;
/**
* @var string $password
*
* @ORM\Column(name="password", type="string", length=255, nullable=false)
*/
private $password;
/**
* @var \DateTime $dateJoined
*
* @ORM\Column(name="date_joined", type="datetime", nullable=false)
*/
private $dateJoined;
/**
* @ORM\OneToMany(targetEntity="Friends", mappedBy="member")
*/
protected $friends;
public function __construct()
{
$this->friends = new ArrayCollection();
}
/**
* Get memberId
*
* @return integer
*/
public function getMemberId()
{
return $this->memberId;
}
/**
* Set fullName
*
* @param string $fullName
* @return Members
*/
public function setFullName($fullName)
{
$this->fullName = $fullName;
return $this;
}
/**
* Get fullName
*
* @return string
*/
public function getFullName()
{
return $this->fullName;
}
/**
* Set email
*
* @param string $email
* @return Members
*/
public function setEmail($email)
{
$this->email = $email;
return $this;
}
/**
* Get email
*
* @return string
*/
public function getEmail()
{
return $this->email;
}
/**
* Set password
*
* @param string $password
* @return Members
*/
public function setPassword($password)
{
$this->password = $password;
return $this;
}
/**
* Get password
*
* @return string
*/
public function getPassword()
{
return $this->password;
}
/**
* Set dateJoined
*
* @param \DateTime $dateJoined
* @return Members
*/
public function setDateJoined($dateJoined)
{
$this->dateJoined = $dateJoined;
return $this;
}
/**
* Get dateJoined
*
* @return \DateTime
*/
public function getDateJoined()
{
return $this->dateJoined;
}
/**
* Add friends
*
* @param Pixbelly\AppBundle\Entity\Friends $friends
* @return Members
*/
public function addFriend(\Pixbelly\AppBundle\Entity\Friends $friends)
{
$this->friends[] = $friends;
return $this;
}
/**
* Remove friends
*
* @param Pixbelly\AppBundle\Entity\Friends $friends
*/
public function removeFriend(\Pixbelly\AppBundle\Entity\Friends $friends)
{
$this->friends->removeElement($friends);
}
/**
* Get friends
*
* @return Doctrine\Common\Collections\Collection
*/
public function getFriends()
{
return $this->friends;
}
}
友達エンティティ
<?php
namespace Pixbelly\AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Pixbelly\AppBundle\Entity\Friends
*
* @ORM\Table(name="friends")
* @ORM\Entity(repositoryClass="Pixbelly\AppBundle\Repository\FriendsRepository")
*/
class Friends
{
/**
* @var integer $id
*
* @ORM\Column(name="friendship_id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $friendshipId;
/**
* @var integer $memberId
*
* @ORM\Column(name="member_id", type="integer", nullable=false)
*/
private $memberId;
/**
* @var integer $friendId
*
* @ORM\Column(name="friend_id", type="integer", nullable=false)
*/
private $friendId;
/**
* @ORM\ManyToOne(targetEntity="Members", inversedBy="friends")
* @ORM\JoinColumn(name="member_id", referencedColumnName="member_id")
*/
protected $member;
/**
* Get friendshipId
*
* @return integer
*/
public function getFriendshipId()
{
return $this->friendshipId;
}
/**
* Set memberId
*
* @param integer $memberId
* @return Friends
*/
public function setMemberId($memberId)
{
$this->memberId = $memberId;
return $this;
}
/**
* Get memberId
*
* @return integer
*/
public function getMemberId()
{
return $this->memberId;
}
/**
* Set friendId
*
* @param integer $friendId
* @return Friends
*/
public function setFriendId($friendId)
{
$this->friendId = $friendId;
return $this;
}
/**
* Get friendId
*
* @return integer
*/
public function getFriendId()
{
return $this->friendId;
}
/**
* Set member
*
* @param Pixbelly\AppBundle\Entity\Members $member
* @return Friends
*/
public function setMember(\Pixbelly\AppBundle\Entity\Members $member = null)
{
$this->member = $member;
return $this;
}
/**
* Get member
*
* @return Pixbelly\AppBundle\Entity\Members
*/
public function getMember()
{
return $this->member;
}
}