動作しません。私は2つのエンティティ間のoneToMany
/manyToOne
非常に単純な関係を持っていますWorkflow
:symfonyの3 - - ドクトリン2 ORDERBY oneToMany関係には
MyBundle\Entity\State:
type: entity
id:
id:
type: integer
generator: {strategy: AUTO}
manyToOne:
workflow:
targetEntity: MyBundle\Entity\Workflow
inversedBy: states
cascade: [persist, merge, refresh]
...
fields:
stateOrder:
type: smallint
どちらもorderBy: ASC
もorderBy: DESC
も州を注文します。私はphp bin/console doctrine:schema:update --force --complete --dump-sql
を実行し、オプションを変更するときにキャッシュをクリアし、Apacheを再起動しました。私もorderBy
オプション追加のdoctrines official way試みた
:ここでは同じ結果とorderBy: {'stateOrder': 'DESC'}
/orderBy: {'stateOrder': 'ASC'}
を...
は、フォームのレンダリング時に走ったクエリです:
SELECT
t0.id AS id_1,
t0.name AS name_2,
t0.project_id AS project_id_3,
t4.id AS id_5,
t4.stateOrder AS stateOrder_6,
t4.workflow_id AS workflow_id_7,
t8.id AS id_9,
t8.keyWord AS keyWord_10,
t8.action AS action_11,
t8.workflow_id AS workflow_id_12,
t8.from_id AS from_id_13,
t8.to_id AS to_id_14,
t0.initialState_id AS initialState_id_15
FROM
workflow_Workflow t0
LEFT JOIN workflow_State t4 ON t4.workflow_id = t0.id
LEFT JOIN workflow_Transition t8 ON t8.workflow_id = t0.id
WHERE
t0.id = '10';
だから、順序byはクエリの一部ではありません...
これはなぜうまくいかないのですか?
特別なクエリを使用してこれらのエンティティを取得していますか?もしそうなら: 'State'エンティティはフェッチ結合されていますか? – ccKep
また、[DDC-3448](https://github.com/doctrine/doctrine2/issues/4256)はおそらく関連しています。 – ccKep
いいえ、エンティティはSymfonys 'ParamConverter'によって自動的に読み込まれます...しかし、私は[github](https://github.com/doctrine/doctrine2/issues/4256)の問題を発見しました:' orderBy'は動作しません'EAGER'!とにかくおかげさま...(あなたはどこに速く問題を発見したのですか?) – goulashsoup