如何在 laravel 中对从数据库中获取的数组数据添加限制

How to add limit to array data fetched from database in laravel

我正在从用户 table 中检索行,并且我正在使用以下代码。

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

我想为 $user 数据添加数组限制。我不想使用 paginate();。要添加限制,我正在使用以下代码,但它不起作用

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

但是它显示在下面的错误信息

exception 'ErrorException' with message 'array_slice() expects parameter 1 to be array, object given' in........

如何为 $user 添加限制?

你的意思是使用:

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

您收到错误是因为 $userscollection,而不是数组。

您可以使用 take 方法

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

slice方法

$users = User::get()->slice(3);
<?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);