У меня есть три модели, связанные через отношение hasMany: Course
/ Lesson
/ Article
- A Course
hasMany Lessons
hasMany Articles
.
В моей таблице articles
есть столбец int
с именем pos
(сокращение от позиции), и я хочу упорядочить по нему статьи.
Я использую следующий запрос в своем CoursesController
, но он не сортирует статьи по этому атрибуту pos
:
публичная функция show (курс $ Course, уроки $ Lesson, Article $ Articles) {$ статьи= $ lesson-> article () -> orderBy ('pos', 'asc') -> get ();обратный просмотр («users.courses.show», компактный («курс», «уроки», «статьи»));}
Я использую цикл foreach в лезвии:
@foreach($lesson->articles as $article)
{{ $article->title }}
@endforeach
Любая помощь будет признательна!
Панель отладки Laravel показывает следующий результат:
select * from articles
, где slug
= предел "this-is-article-one" 1 13.27ms \ vendor \ laravel\ framework \ src \ Illuminate \ Routing \ ImplicitRouteBinding.php: 35
select * from articles
, где lesson_id
= 1 и pos
<2, порядок <code>pos desc предел 1 660 мкс \ app \Http \ Controllers \ Users \ ArticlesController.php: 55
выберите * из articles
, где lesson_id
= 1 и pos
> 2 порядка по pos
asc limit 1 520μs \ app \ Http \ Controllers\ Users \ ArticlesController.php: 59
выберите * из courses
, где courses
. id
= 2 ограничения 1 610 мкс. View: users.articles.show: 7
выберите* из lessons
, где lessons
. id
= 1 предел 1 530 мкс. view: users.articles.show: 8
выберите * из articles
, где articles
. lesson_id
= 1и articles
. lesson_id
не равно нулю