【问题标题】:How to add limit to array data fetched from database in laravel如何在 laravel 中对从数据库中获取的数组数据添加限制
【发布时间】:2017-10-24 10:34:20
【问题描述】:

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

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

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

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

但它显示在错误消息下方

异常 'ErrorException' 与消息 'array_slice() 期望 参数1为数组,给定的对象'in........

如何为$user 添加限制?

【问题讨论】:

    标签: php arrays laravel object arrayobject


    【解决方案1】:

    这里有一些方法可以实现这一目标。

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

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

    【讨论】:

      【解决方案2】:
      <?php 
          $user = User::get(); 
          $user = $user ->limit(10);
      ?>
      

      尝试限制或

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

      【讨论】:

        【解决方案3】:

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

        您可以使用take 方法

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

        slice 方法

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

        【讨论】:

          【解决方案4】:

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

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

          注意,User 模型必须扩展 Eloquent。

          【讨论】:

          • 这是更好的答案,因为它已经限制了查询的结果,所以结果只是不是所有用户都需要的。你也可以使用-&gt;take(10)-&gt;get()
          • get 方法是最好的,并且应该在 wherelimitoffset 和一切为了更好的资源管理之后调用。
          【解决方案5】:

          你的意思是使用:

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

          【讨论】:

          • 如果$user 是一个数组,array_slice 会很好。可能首先将其转换为数组会做$users = array_slice($user-&gt;toArray(), 0, 2);,但更好的方法就是$users = $user-&gt;take(2);
          猜你喜欢
          • 2021-03-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-07-28
          • 2015-11-26
          • 1970-01-01
          • 2015-11-12
          • 1970-01-01
          相关资源
          最近更新 更多