38
これは私のユーザの履歴を表示しようとしている私の機能です。このためには、ユーザーの現在のクレジットと彼のクレジット履歴を表示する必要があります。Doctrineで左結合を行うには?
これは私が何をしようとしていますものです:
public function getHistory($users) {
$qb = $this->entityManager->createQueryBuilder();
$qb->select(array('a','u'))
->from('Credit\Entity\UserCreditHistory', 'a')
->leftJoin('User\Entity\User', 'u', \Doctrine\ORM\Query\Expr\Join::WITH, 'a.user = u.id')
->where("a.user = $users ")
->orderBy('a.created_at', 'DESC');
$query = $qb->getQuery();
$results = $query->getResult();
return $results;
}
はしかし、私はこのエラーを取得する:
[Syntax Error] line 0, col 98: Error: Expected Doctrine\ORM\Query\Lexer::T_WITH, got 'ON'
編集:私が参加して 'WITH' と 'ON' に置き換え私が見るものは結合された列からの値が1つだけです。
は関係なしに/アプローチ:何の関連付けが利用できない場合
は、その後、クエリは次のような結果セットが生成されます
これを次のようになります。 、あなたのコードに従って、私は結果セットを取得していることを示唆しているように関係との第一。しかし、私は結合された結果セットを見ることができません。 第2のアプローチ私はデータを取得していると言いたいのですが、正確に何を探していたのですか? –
最初のクエリは 'User'オブジェクトが' User'オブジェクトを与えた 'UserCreditHistory'オブジェクトを与えます。 join(http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/dql-doctrine-query-language.html#joins) – Ocramius
非常に真実です。水和されているので、私は必要ですループバックして希望の値 –