Чи є спосіб "обмежити" результат за допомогою ЕЛОКВЕНТНОЇ ОРМИ Laravel?
SELECT * FROM `games` LIMIT 30 , 30
А з Красномовним?
Чи є спосіб "обмежити" результат за допомогою ЕЛОКВЕНТНОЇ ОРМИ Laravel?
SELECT * FROM `games` LIMIT 30 , 30
А з Красномовним?
Відповіді:
Створіть ігрову модель, яка розширює красномовне, і скористайтеся цим:
Game::take(30)->skip(30)->get();
take()
тут ви отримаєте 30 записів і skip()
тут буде зміщено до 30 записів.
В останніх версіях Laravel ви також можете використовувати:
Game::limit(30)->offset(30)->get();
Якщо ви хочете скористатися результатами, використовуйте вбудований пагінатор , він чудово працює!
$games = Game::paginate(30);
// $games->results = the 30 you asked for
// $games->links() = the links to next, previous, etc pages
Ми можемо використовувати LIMIT як нижче:
Model::take(20)->get();
take
це лише псевдонім до limit
. Дивіться сторінку github.com/laravel/framework/blob/5.7/src/Illuminate/Database/… .
Також ми можемо використовувати його наступними способами
Щоб дістатися лише першим
$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();