【问题标题】:Call to a member function take() on array laravel在数组 laravel 上调用成员函数 take()
【发布时间】:2019-01-22 17:56:34
【问题描述】:

我正在使用 Laravel 5.2,我想做的是从我的数据库中的信息中填充一个 jQuery 数据表。这是我的代码:

Route::get('/a/VentasPorSucursal', function(){
   $values = [1, 8000, 2, "NULL", "2018-06-10", "2018-08-10", "NULL", "NULL"];
   $data = DB::select('SP_RPT_VENTAS2 ?, ?, ?, ?, ?, ?, ?, ?', $values)->take(10);

   return Datatables::of(collect($data))->make(true);
});

当我运行我的应用程序时,我收到以下错误消息:

调用数组上的成员函数take()

如果我删除这部分代码一切正常:

->take(10)

我也尝试过使用 ->paginate(10),但我得到了同样的错误信息。

可能是什么问题?

【问题讨论】:

  • DB::select(...) 返回一个数组,take() 不是数组的有效方法。也许在您的声明中添加 LIMIT 10(或 db 等效项)?
  • @TimLewis 好的,我明白这一点,但是在我的语句中添加一个限制 x 之后,我将执行另一个函数来显示接下来的 10 行,对吗?
  • 那你不做OFFSET 10吗?话虽如此,我不知道 SP_RPT_VENTAS2 是什么或它的作用......对我来说,看起来你正在选择静态值并期望有 10 多行。
  • @TimLewis 这是一个存储过程(来自 sql server),它获取 $values 数组中两个静态日期之间的所有信息
  • 我猜是这样的。我确信有一种方法可以将 Sproc 转换为 Builder 实例,它可以让您使用 ->paginate() 以及其他构建器方法,但不幸的是我不知道。

标签: php laravel-5 laravel-5.2


【解决方案1】:

您必须使用->take(10)->get(); insted 或仅->take(10);

【讨论】:

    猜你喜欢
    • 2017-12-04
    • 2022-01-22
    • 2017-05-22
    • 2018-06-28
    • 1970-01-01
    • 1970-01-01
    • 2019-01-18
    • 2021-06-15
    • 2016-09-17
    相关资源
    最近更新 更多