2

Doctrine と Zend Framework 2 を使用しています。「 Doctrine partials 」を使用するときにエンティティの外部キーを取得する方法がわかりません。クエリビルダーも使用しており、配列を返したいと思っています。

以前は: を使用していましIDENTITY(e.variable)たが、今はパーシャルを使用すると、次のようなコードになります: partial e.{id, name...}。また、外部キーを取得するためにどこで何を使用すればよいかわかりません。

使用する場合e.{id, name}, IDENTITY(e.variable)、外部キーを取得しますが、それは同じ配列の一部ではありません:

array (size=2)
  0 => 
    array (size=2)
      'id' => int 1
      'name' => string 'Test' (length=4)
  'countryId' => string 'en' (length=2)

しかし、私は取得したい:

array (size=2)
  0 => 
    array (size=2)
      'id' => int 1
      'name' => string 'Test' (length=4)
      'countryId' => string 'en' (length=2)

私も知ってHINT_INCLUDE_META_COLUMNSいますが、このソリューションはすべての外部キー用であり、選択するかどうかを決定できず、より柔軟になりたいと考えています。

4

2 に答える 2

3

あなたはすでに問題を解決していると思いますが、似たようなものをグーグルで検索して、私の経験を共有することにしました.

SQL を使用しているように平らな長方形のデータセットを取得するには、Doctrine は部分オブジェクトを使用することを提案しています。結果セットに外部キーも含めたい場合は、部分的な構文を削除して、列を直接リストします。

SELECT e.id, e.name, IDENTITY(e.country) as countryId FROM MyEntity e ...

メソッドを使用しgetArrayResultてプレーンデータ配列を取得するようにしてください。

http://docs.doctrine-project.org/en/latest/reference/dql-doctrine-query-language.html#array-hydration

于 2013-06-13T07:29:23.447 に答える
2

http://docs.doctrine-project.org/en/latest/reference/dql-doctrine-query-language.html#select-expressionsによると、 「部分的」は「SimpleStateField」のみを受け入れるため、それを行う方法はないようです'。

したがって、「国 c」に参加し、「部分 c.{id}」を選択する必要があります。

于 2014-02-06T20:57:49.257 に答える