将查询生成器转换为 Eloquent 生成器
Convert Query Builder to Eloquent Builder
我无法在 groupby 中提取结果,下面的查询构建器工作得很好,但我希望它 Eloquent。
我只想显示关系中已有的文件夹?
如何将查询生成器转换为 Eloquent?
$folders = Folder::select('folders.id','folders.title')
->join('matters', 'matters.folder_id', '=', 'folders.id')
->join('tutorials', 'tutorials.matter_id', '=', 'matters.id')
->whereDate('tutorials.start', '=', date('Y-m-d'))
->where('tutorials.status','=','0')
->groupby('folders.id')
->get();
好像Floder
有很多Matter
,Matter
有很多Tutorial
.
您可以创建 hasManyThrough relationship in Folder
Model, and use whereHas 来查找 folders
$folders = Folder::whereHas('tutorials', function($query) {
$query->whereDate('tutorials.start', '=', date('Y-m-d'))
->where('tutorials.status','=','0');
})->select('title', 'id')->get();
如果你没有 hasManyThrough
关系,你仍然可以获得 folders
这样的:
$folders = Folder::whereHas('maters.tutorials', function($query) {
$query->whereDate('tutorials.start', '=', date('Y-m-d'))
->where('tutorials.status','=','0');
})->select('title', 'id')->get();
我无法在 groupby 中提取结果,下面的查询构建器工作得很好,但我希望它 Eloquent。 我只想显示关系中已有的文件夹?
如何将查询生成器转换为 Eloquent?
$folders = Folder::select('folders.id','folders.title')
->join('matters', 'matters.folder_id', '=', 'folders.id')
->join('tutorials', 'tutorials.matter_id', '=', 'matters.id')
->whereDate('tutorials.start', '=', date('Y-m-d'))
->where('tutorials.status','=','0')
->groupby('folders.id')
->get();
好像Floder
有很多Matter
,Matter
有很多Tutorial
.
您可以创建 hasManyThrough relationship in Folder
Model, and use whereHas 来查找 folders
$folders = Folder::whereHas('tutorials', function($query) {
$query->whereDate('tutorials.start', '=', date('Y-m-d'))
->where('tutorials.status','=','0');
})->select('title', 'id')->get();
如果你没有 hasManyThrough
关系,你仍然可以获得 folders
这样的:
$folders = Folder::whereHas('maters.tutorials', function($query) {
$query->whereDate('tutorials.start', '=', date('Y-m-d'))
->where('tutorials.status','=','0');
})->select('title', 'id')->get();