让我解释一下我是如何制造事物的(也许不是最好的方法)。我想加入我的StoreSchedule实体(该实体包含三重关系:store(我在其中存储有关地址,名称,我的商店的图片的所有信息),days(一周中的7天)和Schedules(日程表)(仅字符串,例如“ 09:00-22:00')。
[为了结合这3个实体,我制作了StoreSchedule,在其中涉及这3个信息时,它具有三重关系。也许我的解释不太好,让我向您展示一些屏幕。
我已经尝试对存储库中的QueryBuilder进行的操作:
我如何在StoreSchedule表中构建事物:
我的时间表表:
天数表包含一周中的7天。也许很明显,也许没有。
所以这就是问题,我无法弄清楚该如何满足需要:一个从Store获取所有内容并加入ID = Store.ID的StoreSchedule的查询
我想从商店获取日期和带有ID的时间表。
我可以使用查询生成器吗?
我必须修改我的数据库吗?我的关系好吗?
最诚挚的问候!
ps:希望我让自己足够清楚..
您使它太复杂了。您可以清除天表和StoreSchedule。只需在Store和(Store)Schedule之间建立多对一关系。在您的时间表表中添加一列“天”。如果存储日期,则可以使用一个短整数。参见php的date function。
对于您的查询(第一个链接),您不需要该WHERE子句。 Doctrine将自动为您加入相关数据。
public function getAllContentStoreAndSchedule()
{
return $this->createQueryBuilder('st')
->leftJoin('st.schedule', 'sc')
->addSelect('sc')
->orderBy('st.name', 'ASC')
->addOrderBy('sc.day', 'ASC')
->getQuery()
;
}