2016-04-20 3 views
0

Я использую Laravel 5.2.
Как написать запрос о "заказать по update time"?Как написать этот запрос о "order by` update time "в Laravel 5.2?

Есть 2 таблицы, users и articles, у них есть «один-ко-многим» отношения,
Я хотел бы запросить имя пользователя и его/ее название статьи, и порядок, к статье update time,
как это:

username article titles      update time 
Lily  aaa-title-01;aaa-title-02;...  2016-04-20 12:00:00 
Lucy  bbb-title-01;bbb-title-02;...  2016-04-19 12:00:00 
Jim   ccc-title-01;ccc-title-02;...  2016-04-18 12:00:00 

update time самое последнее время обновления к статье пользователя, например:

Первый, username Лили, update time является 2016-04-20 12:00:00, он представляет, что последняя статья Лили была обновлена ​​по адресу 2016-04-20 12:00:00.
Вторая, она представляет, что последняя статья Люси была обновлена ​​на 2016-04-19 12:00:00.
Последняя статья Лили позже Люси, поэтому Лили первая, Люси вторая, и ... Джим третий.

Я writed запрос следующим образом:

$articles =User::whereHas('articles', function($query) { 
      $query->where('status', 1); //status is 1 or 0, 1 is published,0 is not published. 
     })->get(); 

Этот запрос может получить имя пользователя и его/ее статьи, но не мог приказать update time выше, как это сделать?

+0

время обновления - это поле статей, верно? –

+0

@JoseRojas Да, это так. – zwl1619

+0

@ Антенна Мушанджи Деррика не работает для вас? –

ответ

0

Просто добавьте orderBy по запросу, и вы должны хорошо выглядеть.

$articles =User::whereHas('articles', function($query) { 
    $query->where('status', 1)->orderBy('update_time', 'desc'); 
})->get(); 
Смежные вопросы