Laravel orderBy не существует - PullRequest
       1

Laravel orderBy не существует

0 голосов
/ 11 октября 2018

Я делаю простой запрос

  $offers = Offer::join('offer_speciality', 'offers.id', 'offer_speciality.offer_id')
            ->join('specialities', 'offer_speciality.speciality_id', 'specialities.id')
            ->when($speciality, function($query, $speciality) {
                 return $query->where('specialities.number', $speciality)->get();
            })
            ->orderBy('created_at','desc')->paginate(9);

, а затем ошибка:

Метод Illuminate \ Database \ Eloquent \ Collection :: orderBy не существует

Я не уверен, что это?

1 Ответ

0 голосов
/ 11 октября 2018

В момент запуска ->get() возвращается коллекция, и ->orderBy() не является функцией, которую вы можете запустить в коллекции со всеми доступными функциями, перечисленными в документе.

Выполучил ваш ->get() до вашего ->orderBy(), и это не сработает.Кроме того, вам не нужно ->get(), поскольку у вас есть ->paginate(9)

Вам необходимо:

$offers = Offer::join('offer_speciality', 'offers.id', 'offer_speciality.offer_id')
      ->join('specialities', 'offer_speciality.speciality_id', '=', 'specialities.id')
      ->when($speciality, function($query, $speciality) {
           return $query->where('specialities.number', $speciality)
      })
      ->orderBy('created_at','desc')->paginate(9)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...