Как извлечь 10 лучших строк из таблицы в зависимости от значения поля?

#laravel #laravel-5 #eloquent

#laravel #laravel-5 #красноречивый

Вопрос:

У меня есть таблица «статьи» (модель: Article), где есть поле с именем «просмотр страницы». У каждой статьи разное количество просмотров страниц. Я хочу извлечь те строки, которые содержат 10 лучших просмотров страниц. Как я могу извлечь эти данные с помощью eloquent?

Ответ №1:

Вы можете сначала упорядочить статьи по порядку DESC, а затем извлечь 10 записей модели. Попробуйте это!

 $articles = Article::orderBy('pageview', 'DESC')->take(10)->get();
  

Ответ №2:

Вы можете сделать это с помощью метода OrderBy, который упорядочивает данные. следовательно, вам нужны 10 лучших просмотров страниц, вы можете это сделать.

 orderBy('PageView','desc')
  

Теперь вам нужно взять только 10, поэтому используйте метод take(). На самом деле это означает ограничение в MySQL. вот ваш код

 Article::orderBy('PageView','desc')->take(10)->get();
  

Запрос Mysql теперь

 select * from articles order by PageView desc limit 10
  

Ответ №3:

Это сделает свое дело:

 Article::orderBy('PageView','Desc')->take(10)->get();
  

Ответ №4:

 Article::orderBy('PageView','DESC')->take(10)->get();
  

или (без имени столбца)

 Article::latest()->take(10)->get();