我有3桌学校,school_Details,评分
**学校**
id
名称
电话
学校
电子邮件
状态
学校详细信息:
-id
school_id
图片
状态
评分:
-id
两个评分和学校详细信息的一个school_id都只有一行。
现在如何从schoolController获取索引中所有3个表的所有详细信息
答案 0 :(得分:2)
使用Laravel关系。
在“学校模型”中添加它。
public function schoolDetails()
{
return $this->hasOne('App\SchoolDetails');
}
public function ratings()
{
return $this->hasOne('App\Ratings');
}
在“学校详细信息模型”中添加它。
public function school()
{
return $this->belongsTo('App\School');
}
在“评分模型”中添加此内容。
public function school()
{
return $this->belongsTo('App\School');
}
在学校负责人
public function index()
{
$schools = Schools::with('schoolDetails')
->with(ratings)
->get();
return $schools;
}
您可以尝试一下吗
答案 1 :(得分:0)
这是一个相当广泛的问题。这将有助于显示您到目前为止所做的尝试。答案是要建立从学校到详细信息和等级的one to many关系。
然后从索引方法调用基础学校对象内的那些关系。您甚至可以eager load从数据库中进行一次简单干净的提取。
根据您的学校模型进行说明:
1. 857019877
2. 1923929452
3. 685483091
1. 857019877 <--- Repeats
2. 1923929452
3. 685483091
1. 857019877
2. 1923929452
3. 685483091
1. 2033103372 <--- Phew! It's a new number
2. 728933312
3. 2037485757
关于您学校的详细信息也是如此。然后,希望加载索引方法:
public function ratings()
{
return $this->hasMany('App\Rating');
}
然后您的学校物件满足了您的所有要求:
$schools= App\School::with(['ratings', 'details'])->get();
等