Как использовать OrderBy в Laravel, используя красноречивые отношения? - PullRequest
2 голосов
/ 27 сентября 2019

У меня есть две модели: категория и модель PostAd.Они двое имеют отношения друг с другом.В режиме Laravel я передал данные через Category Model для отображения данных PostAd.Я хочу применить условие OrderBy в запросе, но оно не работает

Код

$data['category'] = Category::with(['postads'])->where('id',$id)->get();

Я хочу сделать это

$data['category'] = Category::with(['postads'])->where('id',$id)->orderBy('adtitle','DESC')->get();

Но это не работает, потому что это модель категории.Как я могу решить это.

Ответы [ 2 ]

3 голосов
/ 27 сентября 2019

если вы хотите получить данные PostAd с заказом к тому времени, вы можете выполнить быструю загрузку Order by.

И здесь вы используете метод get(), поэтому он должен быть first();, потому что ->where('id',$id) всегда получаю одну запись.

$data['category'] = Category::with(['postads' => function($query) {
        $query->orderBy('adtitle', 'DESC');
    }])->where('id',$id)->first();
0 голосов
/ 27 сентября 2019

Запрос, как быть ..

$data['category'] = Category::with( 
                  ['postads' => function($query) {
                         $query->orderBy('adtitle', 'DESC');
    }
         ])->where('id',$id)->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...