我正在使用laravel的雄辯爲了查詢數據庫中的多個表。以下查詢正在工作。但是,我想在查詢中添加一些內容,根據Job
表列archived
的值是否設置爲0
或1
來過濾掉milestones
。Laravel雄辯的加入奇怪的查詢
$app->get('/dashboard/user', function() {
global $app;
$milestones = Milestone::where('user_id', '=', $app->user->user_id)
->where('completed_flag', '=', '0')
->with('job.businessUnit')
->with('user')
->orderBy('deadline', 'asc')
->get();
$milestones = $milestones->sort(function($a, $b) {
$a0 = ($a->milestone_id == $a->job->next_incomplete_milestone_id);
$b0 = ($b->milestone_id == $b->job->next_incomplete_milestone_id);
return (($a0 == $b0) ? strcmp($a->deadline, $b->deadline) :
(($a0 == true) ? -1 : 1));
});
print json_encode(array(
'user' => $app->user->toArray(),
'milestones' => $milestones->toArray()
));
});
我一直在試圖沿着每個以下的線路做一些事情:
->join('jobs','jobs.archived','=','0')
//
->where('archived','=','0')
//
->with('jobs.archived')
//
->with('jobs')
//
->where('jobs.archived', '=', '0')
如果您打算過濾此部分' - > with('job.businessUnit')'。你可以使用[eagerLoad約束](http://laravel.com/docs/5.1/eloquent-relationships#constraining-eager-loads)。 –