【问题标题】:array_slice() expects parameter 1 to be array - Manually Creating A Paginatorarray_slice() 期望参数 1 是数组 - 手动创建分页器
【发布时间】:2018-04-18 17:22:13
【问题描述】:

我正在尝试联合 3 个 SQL 查询,因此我可以将到期日期排序为 newDate 并手动创建分页器。

但由于某种原因抛出了这个异常:

array_slice() 期望参数 1 是数组,给定对象

我的代码:

public function index(Request $request)
{
    $TMUDue = Equipments::Where('due1', '<>', '1990-01-01')
                            ->select('*', 'due1 AS newDate');
    $CalDue = Equipments::Where('due2', '<>', '1990-01-01')
                            ->select('*', 'due2 AS newDate');
    $SerDue = Equipments::Where('due3', '<>', '1990-01-01')
                            ->select('*', 'due3 AS newDate');

    $equipmentsDue = $SerDue->union($CalDue)->union($TMUDue)->orderBy('newDate')->get();

    $page = Input::get('page', 1);
    $paginate = 10;

    $offSet = ($page * $paginate) - $paginate;
    $itemsForCurrentPage = array_slice($equipmentsDue, $offSet, $paginate, true);
    $equipmentsDue = new \Illuminate\Pagination\LengthAwarePaginator($itemsForCurrentPage, count($equipmentsDue), $paginate, $page);
    return view('dashboard.index', compact('equipmentsDue'));

我做错了吗?

无需手动创建数据库分页,查询就可以正常工作。

【问题讨论】:

  • $equipmentsDue 的输出是什么

标签: php laravel pagination


【解决方案1】:

它明确说你需要传递数组而不是集合,所以用-&gt;toArray();改变它

$equipmentsDue = $SerDue->union($CalDue)
->union($TMUDue)->orderBy($sort , $sort2)->get()->toArray();

【讨论】:

  • 然后瞧!非常感谢老兄
猜你喜欢
  • 2016-09-24
  • 1970-01-01
  • 2020-12-05
  • 2020-06-17
  • 2017-05-03
  • 1970-01-01
  • 2018-11-10
  • 2015-08-25
  • 1970-01-01
相关资源
最近更新 更多