0

メンバー エンティティとフレンド エンティティがあります。テーブルに参加することで、メンバーのすべての友達を取得します。を介してフレンドのメンバーに参加し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を取得する必要があります。memberfriend_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;
}
}
4

0 に答える 0