私はsymfony2で最初のクエリを作成しようとしているので、質問はばかげているかもしれません.
ユーザーのテーブルと(友達)リクエストのテーブルがあります。リクエストテーブルに保存します
id,nick(id),odobera(別のユーザーID - 私がフォローしているユーザー),time
nick プロパティは次のようになります。
/**
* @ORM\ManyToOne(targetEntity="TB\UserBundle\Entity\User", inversedBy="Requests")
* @ORM\JoinColumn(name="nick", referencedColumnName="id")
*/
そして今、古い機能クエリを新しい symfony クエリに再構築したいと思います:
$select_all=mysql_query("SELECT re.*,tb.rank,tb.profile_picture_ultra_small,tb.country,tb.typ_hraca,tb.rank
FROM requests as re
INNER JOIN tb_users as tb
ON re.nick=tb.nick
WHERE re.odobera='$nick' AND re.nick<>'$nick' ORDER BY re.id DESC LIMIT 50");
私は単純に始めました:
public function getMyFollowers($my_id)
{
$qb = $this->createQueryBuilder('mf')
->select('mf')
->where('mf.odobera = :my_id')
->addOrderBy('mf.time','DESC')
->setParameter('my_id', $my_id)
->setMaxResults(50);
return $qb->getQuery()
->getResult();
}
私をフォローしているユーザーの profile_picture を選択するための内部結合がありません + 今ダンプすると結果が奇妙に見えます: (ご覧のとおり、私をフォローしているユーザーの ID (ニックネーム) はありません)
"Proxies\__CG__\TB\UserBundle\Entity\User" ["odobera"]=> int(25) ["time"]=> int(1359128544) ["viewed"]=> bool(true) } [6]=> object(stdClass)#624 (6) { ["__CLASS__"]=> string(33) "TB\RequestsBundle\Entity\Requests" ["id"]=> int(57443) ["nick"]=> string(40) "Proxies\__CG__\TB\UserBundle\Entity\User" ["odobera"]=> int(25) ["time"]=> int(1359124714) ["viewed"]=> bool(true) } [7]=> object(stdClass)#625 (6) { ["__CLASS__"]=> string(33) "TB\RequestsBundle\Entity\Requests" ["id"]=> int(57013) ["nick"]=> string(40) "Proxies\__CG__\TB\UserBundle\Entity\User" ["odobera"]=> int(25) ["time"]=> int(1359047459) ["viewed"]=> bool(true) } [8]=> object(stdClass)#626 (6) { ["__CLASS__"]=> string(33) "TB\RequestsBundle\Entity\Requests" ["id"]=> int(56766) ["nick"]=> string(40)
アイデアはありますか?:P Thx!
あなたが言ったようにこれをエンティティに追加しようとしましたが、名前を変更しましたが、まったく意味がないと思います。クエリは一度に9をロードし、1人のユーザーだけを撤回しました+今はページをロードできません... USERS :
/**
* @ORM\OneToMany(targetEntity="TB\RequestsBundle\Entity\Requests", mappedBy="following")
*
**/
private $followers;
リクエスト:
/**
* @ORM\ManyToOne(targetEntity="TB\UserBundle\Entity\User", inversedBy="followers")
* @ORM\JoinColumn(name="nick", referencedColumnName="id")
**/
プライベート $following;
でも……腑に落ちない。