Как добавить ограничение на массив данных, извлекаемых из базы данных в Laravel

Я извлекаю строки из пользовательской таблицы и использую приведенный ниже код.

<?php $user = User::get(); ?>

Я хочу добавить предел массива для данных пользователя. Я не хочу использовать paginate();, Чтобы добавить ограничение я использую код ниже, но он не работает

$users = array_slice($users, 0,2);

Но это показывает ниже сообщение об ошибке

исключение "ErrorException" с сообщением "array_slice() ожидает, что параметр 1 будет массивом, объект задан" в........

Как добавить лимит в $user?

5 ответов

Решение
<?php 
    $user = User::get(); 
    $user = $user ->limit(10);
?>

попробуйте ограничить или

<?php 
    $user = User::get(); 
    $user = $user ->take(10);
?>

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

User::limit(10)->offset(0)->get();

Обратите внимание, что модель пользователя должна расширять Eloquent.

Вот несколько способов, которыми вы можете достичь этого.

Применение смещения и предела непосредственно к построителю запросов позволяет извлекать только необходимые строки.

$users = User::skip(5)->take(10)->get();
$users = User::offset(5)->limit(10)->get();

Если вы настаиваете на работе с полным результатом, то этот подход - то, что вам нужно. Вам нужно использовать метод среза коллекции, а не array_slice, поскольку результатом является коллекция.

$users = User::all();
// Collection slice(offset, limit)
$users = $users->slice(5, 10);

Вы хотите использовать:

$users = array_slice($user, 0,2); 

Вы получаете ошибку, потому что $users это коллекция, а не массив.

Вы можете использовать метод взятия

$users = User::get()->take(3);

или метод среза

$users = User::get()->slice(3);
Другие вопросы по тегам