我有三张表如下:
users:
id, fullname, phone ...
tasks:
id, user_id, title, description ...
tasks_state:
id, task_id, comment, rating, createa_at, updated_at
我正尝试在表格updated_at
中tasks_state
使用laravel中的关系进行排序
Model tasks
public function taskstate()
{
return $this->hasOne(TaskState::class, 'task_id');
}
Model tasks_state
public function task()
{
return $this->belongsTo(Tasks::class, 'id', 'taks_id');
}
当我使用时,我希望在表updated_at
中按字段tasks_state
排序返回的数据:
Tasks:with('taskstate')->get();
期待您的帮助:(
答案 0 :(得分:3)
您可以在with子句中使用查询构建器,并通过 updated_at
命令任务状态Tasks:with([
'taskstate' => function($query){
$query->orderBy('updated_at', 'desc');}
])->get();
如果您想以desc顺序使用updated_at每次检索,可以参考Stack Overflow: Laravel default orderBy
答案 1 :(得分:2)
像这样更改任务模型:
模型任务
public function taskstate()
{
return $this->hasOne(TaskState::class, 'task_id')->orderBy('tasks_state.updated_at');
}