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

时间:2017-05-24 07:56:42

标签: php arrays laravel object arrayobject

我正在从用户表中检索行,而我正在使用下面的代码。

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

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

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

但它显示以下错误消息

  

例外&#39; ErrorException&#39;消息&#39; array_slice()期望   参数1为数组,给定对象&#39;在........

如何向$user添加限制?

5 个答案:

答案 0 :(得分:2)

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

尝试限制或

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

答案 1 :(得分:1)

在最近的Laravel版本中,您还可以使用:

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

请注意,用户模型必须扩展Eloquent。

答案 2 :(得分:0)

您的意思是使用:

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

答案 3 :(得分:0)

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

您可以使用take方法

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

slice方法

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

答案 4 :(得分:0)

以下是一些可以实现此目的的方法。

将偏移量和限制直接应用于查询构建器允许您仅获取所需的行。

$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);