我试图使用eloquent从2个表中获取所有列。
到目前为止,我只能从中获取信息。
这是我的两个型号:
Clase模型
public function courses() {
return $this->hasMany('Course');
}
课程有很多课程
课程模型
public function clase() {
return $this->belongsTo('Clase','Clase_id');
}
Course表有Clase_id链接它们
如果我运行此查询
Clase::find(2)->courses;
它搜索课程表clase_id = 2并返回所有列
但是如何获得clase列?
更新
如果我这样做:
$values = course::with('clase')->find(3);
我得到这个数组:
{"id":3,"course":"Essay June","desc":"English Essay for potentiL KD DK NVER ","points":10,"Clase_id":2,"active":0,"clase":{"id":2,"Year":"1","Name":"English","user_id":1}}
所以Clase_id = 2和Clase.id = 2,它们是相互关联的。 但我的查询搜索Courses.id,它需要搜索Clase_id。
答案 0 :(得分:0)
试试这个:
Clase::find(2)->courses()->get();
OR
Clase::where('id', '=', 2)->courses()->get();
如果可以,请告诉我。
事后看来......我认为这与OP的查询完全相同,现在不是这样。误读了这个问题。应该是这样的:
$clases = Clase::find(2)->courses();
然后像往常一样阅读课程/文章:
foreach($clases AS $clase){
echo $clase->column_name;
}
答案 1 :(得分:0)
你已经做过,只需使用它;
$clase = Clase::find(2);
$courses = $clase->courses;
如果由于某种原因想要将所有列放在一起,那么请使用连接,但我怀疑你确实这样做了。