Eloquent查询使用Find()获取两个表

时间:2014-12-04 20:27:29

标签: laravel eloquent

我试图使用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。

2 个答案:

答案 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;

如果由于某种原因想要将所有列放在一起,那么请使用连接,但我怀疑你确实这样做了。