laravel中雄辩的关系

时间:2018-06-02 02:13:22

标签: laravel laravel-5 relational-database relationship laravel-5.5

我有三张表如下:

users:
id, fullname, phone ... 

tasks: 
id, user_id, title, description ...

tasks_state:
id, task_id, comment, rating, createa_at, updated_at

我正尝试在表格updated_attasks_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();

期待您的帮助:(

2 个答案:

答案 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');
}