0

ゲームの場合、story と story_completed の 2 つのエンティティがあります。ストーリーはすべてのユーザー (ここでは会社) で同じです。story_completed は、どのユーザーがどのストーリーを見た/完了したかを示します。ここで、完了したユーザーと完了していないユーザーとショーのストーリーのリストを表示したいと思います。

ここに画像の説明を入力

したがって、2 つのエンティティを作成しました。

...
table: story
id:
    id:
        type: integer
        generator: { strategy: AUTO }
fields:
    name:
        type: string

...
table: story_completed
id:
    id:
        type: integer
        generator: { strategy: AUTO }
ManyToOne:
    story:
        targetEntity: Story
fields:
    company_id: 
        type: integer

しかし今、私がJOINをすると

SELECT s FROM Story s LEFT JOIN s.completed c WHERE ...

次のエラーが表示されます: エラー: クラス ...\Story には、完了という名前の関連付けがありません。

manyToOne 関連付けを誤解したのかもしれませんが、この単純な 2 つのテーブル接続を doctrine2 に結合するにはどうすればよいですか? 実際、ユーザー X がストーリーを完了したかどうかだけを知る必要があります。コレクションや双方向接続は必要ありません。

4

1 に答える 1

0

storyからstory_completedへのOneToMany関係を作成し、「completed」という名前を付ける必要があります。そうすれば、JOINを好きなように使うことができます

于 2013-01-02T11:27:37.403 に答える