Php 许多人加入symfony2

Php 许多人加入symfony2,php,join,symfony,doctrine-orm,many-to-one,Php,Join,Symfony,Doctrine Orm,Many To One,对于一个游戏,我有两个实体:故事和故事完成。故事对于所有用户(此处为公司)都是相同的,故事_completed表示哪个用户看到/完成了哪个故事。现在,我想为用户显示一个故事列表,并显示哪些故事已经完成,哪些故事还没有完成 因此,我创建了两个实体: ... table: story id: id: type: integer generator: { strategy: AUTO } fields: name: type: stri

对于一个游戏,我有两个实体:故事和故事完成。故事对于所有用户(此处为公司)都是相同的,故事_completed表示哪个用户看到/完成了哪个故事。现在,我想为用户显示一个故事列表,并显示哪些故事已经完成,哪些故事还没有完成

因此,我创建了两个实体:

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

但是现在,如果我加入

SELECT s FROM Story s LEFT JOIN s.completed c WHERE ...
我得到一个错误: 错误:类…\Story没有名为“已完成”的关联


也许我误解了manytone关联,但是如何在doctrine2中实现这个简单的2表连接和联接呢?事实上,我只需要知道一个故事,如果用户X已经完成或没有。我不需要集合或双向连接

您需要在story to story_completed中创建一个OneToMany关系,并将其命名为“completed”。如果您这样做,您将能够按照自己的意愿使用联接

我不确定您的图表有多准确,但表名有一个输入错误。“sotry_完成”。另一个问题是,由于关系仅在Story\u completed->Story的方向上,因此无法在Story->Story\u completed目录中运行查询。看看你的实体,我认为让这种关系双向可能更合理。
SELECT s FROM Story s LEFT JOIN s.completed c WHERE ...