id name referred_by_id
1 test1 2
2 test2 1
3 test3 1
referByIDに基づいてreferByNameをputするために新しいカラムを追加します。これはidに等しい。 Symsofnyで私はこれが(同じテーブル)に参加したいと思うSymfonyは同じテーブルに参加してテーブルのエイリアスとして値を取得します
SELECT t1.*, t2.name AS refname
FROM tbl_students t1
JOIN tbl_students t2
ON t1.referred_by_id = t2.id
ORDER BY t1.id
私のクエリ
$repo = $this->getDoctrine()->getRepository('C2EducateToolsBundle:Students');
$leadsData['leads'] = $repo->createQueryBuilder('t')
->select('t.id', 't.name','t.referredByID','t.referredBy')
->where('t.id = :stuID')
->setParameter('stuID', $leadId)
->getQuery()->getResult();
のための私は、エンティティ内の任意のassocialtionを変更する必要がありますか。?
私はあなたがエンティティで定義された関連性を持った後、あなたのクエリは、このようなものでなければなりません
/**
* @var referredByID
*
* @ORM\ManyToOne(targetEntity="Students", cascade={"persist", "remove", "merge"})
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="referred_by_id", referencedColumnName="id")
* })
* @Type("C2Educate\ToolsBundle\Entity\Students")
*/
protected $referredByID;
も、クエリビルダで別名を与えることができますが。あなたが生徒のオブジェクトを取得したときに、それはまた、学生タイプのオブジェクトを参照しました。 –
私はそれをしました、私は私の質問で同じ更新します。どのように私の教義の質問にそのフィールドを取得することができます。 – Developer