【发布时间】:2018-10-16 07:16:20
【问题描述】:
我是 symfony 社区的新人,我有一个问题要问你!
我有 3 个实体:
Homework 与 id、title、description
Student 与 id、name
Note 与 id、note、homework_id、student_id
在我的树枝视图中,我想显示所有作业(按标题排序),并为每个作业显示学生 X 的注释(X 是控制器参数)。
我尝试在 Note 中填写 leftjoin 以完成所有作业,即使是他没有 bd 条目的作业。
做这样的事情最好的方法是什么?
阿克罗
更多信息
-
我试试这个,但我需要在树枝视图中 foreach 两次,我的意思是有更好的解决方案
$homeworksRepo = $manager->getRepository(Homework::class);
$homeworks= $homeworksRepo ->findByAll();$notesRepo = $manager->getRepository(Note::class);
$notes= $notesRepo->findByStudent($student);return $this->render('vew.html.twig', [ 'homeworks' => $homeworks, '笔记' => $笔记, ] );
我尝试使用 queryBuilder,但结果中只得到带有注释的作业。
-
我尝试使用 queryBuilder 和 leftjoin,结果得到这样的结果
$res[0] => 作业对象 1
$res[1] => 注意对象 1
$res[2] => 作业对象 2
$res[3] => 空
$res[4] => 作业对象 3
$res[5] => 注意对象 2
$res[6] => 作业对象 4 $res[7] => 空$qb = $manager->getRepository(Homework::class)->createQueryBuilder('h');
$qb->leftJoin(Note::class,'n','WITH','n.homework = h.id')
->select(['h','n']);
转储($qb->getQuery()->getResult());
我想得到
$res[0] => [Homework object1, Note object 1]
$res[1] => [Homework object2, NULL]
$res[2] => [Homework object3, Note object 2]
【问题讨论】:
-
注意entity不应该有
homework_id和student_id作为属性,而是homework和student -
你能edit你的帖子并添加查询生成器吗?
-
@Cid ,我有作业和学生在实体,我写了数据库字段名称
-
我尝试使用 queryBuilder 你能显示查询生成器吗?你只显示了结果。
-
我没有原始的查询构建器...我重写了一个,如果没有注释,现在我在数组中有空元素。在 twig a 中可以遍历数组 2p2 ,但我认为有更好的解决方案?
标签: symfony4