Есть ли способ «ограничить» результат с помощью ELOQUENT ORM от Laravel?


Ответы:


241

Создайте модель Game, которая расширяет Eloquent, и используйте это:

Game::take(30)->skip(30)->get();

take()здесь будет 30 записей, а skip()здесь будет 30 записей.


В последних версиях Laravel вы также можете использовать:

Game::limit(30)->offset(30)->get();

могу ли я попросить вас взглянуть на вопрос, связанный с Laravel ORM, здесь: stackoverflow.com/questions/59956706/… ?
Истак Ахмед

17

Если вы хотите разбить результаты на страницы, используйте встроенный пагинатор , он отлично работает!

$games = Game::paginate(30);
// $games->results = the 30 you asked for
// $games->links() = the links to next, previous, etc pages

3
Это действительно потрясающе! Используя bootstrap, буквально весь код, который вам нужен, это $ games = Game :: paginate (30) в вашем контроллере и {{$ games-> links ()}} на ваш взгляд ... он позаботится обо всем. Любящий Ларавел!
david_nash


0

Также мы можем использовать его следующими способами

Чтобы получить только первый

 $cat_details = DB::table('an_category')->where('slug', 'people')->first();

Чтобы получить по лимиту и смещению

$top_articles = DB::table('an_pages')->where('status',1)->limit(30)->offset(0)->orderBy('id', 'DESC')->get();
$remaining_articles = DB::table('an_pages')->where('status',1)->limit(30)->offset(30)->orderBy('id', 'DESC')->get();
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.