我想通过嵌套关系的属性对 laravel 集合进行排序。
所以我查询了所有的项目(只在项目有与当前用户相关的任务的地方),然后我想按照任务关系的截止日期对项目进行排序。
当前代码:
项目.php
public function tasks()
{
return $this->hasMany('App\Models\ProjectTask');
}
任务文件
public function project()
{
return $this->belongsTo('App\Models\Project');
}
用户 Controller
$projects = Project->whereHas('tasks', function($query){
$query->where('user_id', Auth::user()->id);
})->get()->sortBy(function($project){
return $project->tasks()->orderby('deadline')->first();
});
我不知道我是否在正确的方向上?
任何建议表示赞赏!
最佳答案
一个很好的干净的方法是使用 .
运算符(operator)
$projects = Project::all()->load('tasks')->sortBy('tasks.deadline');
关于laravel - 按关系值对集合进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41189785/