Метод take
Метод take применяется к запросу Eloquent
или Query Builder и ограничивает количество
возвращаемых записей. Первым параметром передаётся
целое число - максимальное количество записей,
которые будут выбраны из базы данных. Метод
является псевдонимом для метода limit и
используется в связке с методом skip для
реализации пагинации.
Синтаксис
<?php
Model::take($count);
?>
Пример 1
Давайте получим только первые 5 статей из базы данных:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
use IlluminateHttpRequest;
class ArticleController extends Controller
{
public function index()
{
$res = Article::take(5)->get();
foreach ($res as $article) {
echo $article->title;
}
}
}
?>
Результат выполнения кода:
"article 1"
"article 2"
"article 3"
"article 4"
"article 5"
Пример 2
Давайте получим записи со смещением в 3 записи,
используя методы take и skip для пагинации:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
use IlluminateHttpRequest;
class ArticleController extends Controller
{
public function index()
{
$res = Article::skip(3)->take(3)->get();
foreach ($res as $article) {
echo $article->title;
}
}
}
?>
Результат выполнения кода:
"article 4"
"article 5"
"article 6"
Пример 3
Давайте используем метод take с сортировкой
для получения самых новых записей:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
use IlluminateHttpRequest;
class ArticleController extends Controller
{
public function index()
{
$res = Article::orderBy('id', 'desc')->take(3)->get();
foreach ($res as $article) {
echo $article->title;
}
}
}
?>
Результат выполнения кода:
"article 10"
"article 9"
"article 8"
Пример 4
Давайте получим первые 3 записи с условием фильтрации:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
use IlluminateHttpRequest;
class ArticleController extends Controller
{
public function index()
{
$res = Article::where('status', 'published')
->take(3)
->get();
foreach ($res as $article) {
echo $article->title;
}
}
}
?>
Результат выполнения кода:
"article 1"
"article 2"
"article 3"