我有三张桌子,会话&#39;,&#39;类&#39; 和&#39; 时间表< /强>&#39;它们相互联系。
会话:id,name,descr
类:id,session_id,name
日程安排:class_id,session_id,date
一个类属于一个会话,而一个类是一个N:M关系,它给出了在一个类中每个会话都有特定日期的机会。
当我必须显示这些信息时,我的问题出现了,我有一个显示所有会话的功能:
$sessions = Session::all();
我还有另一个功能,它显示特定类的日期和特定会话,如下所示:
$result = Schedule:where('class_id','=',$classId)->where('session_id','=',$essionId)->first();
所以说我的单个课程有30个课程,当谈到我用AngularJS编写的前端应用程序时,我不知道如何使用ng-repeat迭代遍历所有会话来处理显示,然后制作另一个带有ng-repeat迭代的调用来调用调度来显示会话的日期,这在AngularJS中是不行的。
有谁能告诉我什么是我处理这个问题的最佳选择?我要修改后端吗?喜欢编辑Session:all();查询还包括Schedule表?或者最好的方法是什么?
答案 0 :(得分:0)
我认为你已经在模型中配置了你的关系,如果看不到here
就我而言,我使用Fractal来自定义显示数据。还有一种称为Available includes的方便方法
因此,您可以请求/sessions/?include=classes
等数据并获取输出
{data: [{
session_id: 1,
some: "data",
classes:[{
class_id: 11,
some: "class_data"
}]
}]}
答案 1 :(得分:0)
我会急切地加载&#34;数据,因此您可以通过加载的对象访问所有对象的父级。这样,只需迭代1个对象就可以逐个填充表行。
在Laravel网站上有关于急切加载的excellent documentation,所以我建议你从那里开始