Красноречивые отношения в Laravel - PullRequest
0 голосов
/ 02 июня 2018

У меня есть три таблицы следующим образом:

users:
id, fullname, phone ... 

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

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

Я пытаюсь использовать отношения в laravel для порядка updated_at в таблице tasks_state

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 голосов
/ 02 июня 2018

Вы можете использовать построитель запросов в предложении with и упорядочить состояние задачи по updated_at

Tasks:with([
           'taskstate' => function($query){
               $query->orderBy('updated_at', 'desc');}
])->get();

Если вы хотите получать каждый раз с updated_at в порядке удаления, вы можете сослаться на Переполнение стека: порядок по умолчанию LaravelBy

0 голосов
/ 02 июня 2018

Измените свою модель задач следующим образом:

Модель задач

public function taskstate()
{
    return $this->hasOne(TaskState::class, 'task_id')->orderBy('tasks_state.updated_at');
}
...