$posts = $qb
->select('p')
->from('MyBundle\Entity\Post', 'p')
->getQuery()
->getArrayResult();
クエリは次のようなもの(99列)結果が配列として水和されたときにDoctrine 2 Query Builderを使用して外部キーを取り出す方法は?上記
id | title | url | .... many columns here ..... | created_at
---|--------------------------------|-------------------------------|--------------------
1 | hello | http://www.google.com/ | | - | - | - | - | - | - | 2017-01-01 00:00:00
2 | world | http://www.yahoo.com/ | | - | - | - | - | - | - | 2017-01-01 00:00:00
を戻しますが、このテーブルは、テーブル「ユーザー」を意味FK(USER_ID)を有しています。問題はこれです:クエリはFK列をクエリ結果に持ってこない。私はテストし、結果が配列(getArrayResult)として水和されると、FKの結果を無視します。結果がオブジェクト(getResult)として水和されると、FKの結果が返されます。さて、私はこの便利なポスト(http://shout.setfive.com/2015/01/31/including-foreign-keys-in-doctrine2-array-results/)を読んで、ショー以下のコードのように(これは適切な方法であれば、わからないけど作品で)FKを取得する方法
$posts = $qb
->select('p')
->from('MyBundle\Entity\Post', 'p')
->getQuery()
->setHint(\Doctrine\ORM\Query::HINT_INCLUDE_META_COLUMNS, true)
->getArrayResult();
はいえ、私は別の問題に直面する考え出しましたそれは私がこれまで解決できなかったものです。私が言ったように、このテーブルには+ 99列があります。しかし、私はそれらのすべてを望んでいません。 私がしたいのは+99のうち3つだけです。私は(テーブル、ユーザー、列IDに参照のうえ)FKを意味選択の「p.user」を、追加するまで適切になるまで作業以下のコード...
$posts = $qb
->select(array('p.id', 'p.url'))
->from('MyBundle\Entity\Post', 'p')
->getQuery()
->setHint(\Doctrine\ORM\Query::HINT_INCLUDE_META_COLUMNS, true)
->getArrayResult();
...。
私は何を得るのです$posts = $qb
->select(array('p.id', 'p.url', 'p.user'))
->from('MyBundle\Entity\Post', 'p')
->getQuery()
->setHint(\Doctrine\ORM\Query::HINT_INCLUDE_META_COLUMNS, true)
->getArrayResult();
:
[Doctrine\ORM\Query\QueryException]
[Semantical Error] line 0, col 10 near 'user FROM MyBundle\Entity\Post': Error: Invalid PathExpression. Must be a StateFieldPathExpression.
非常にうまくいった!感謝します! –