所以我有一个问题,当我想添加元素到Paginator集合时,我收到了这个错误:
call_user_func_array() expects parameter 1 to be a valid callback, class 'Illuminate\Support\Collection' does not have a method 'add'
这是我的代码:
$data = $users->whereBetween('program_date',[$from,$to . ' 23:59:59'])->paginate(10);
$tests = $test->whereBetween('created_at',[$from,$to . ' 23:59:59'])->paginate(10);
foreach ($tests as $sms) {
$camp = new Campagne();
$camp->user_id = $sms->user_id;
$data->add($camp); // i got error in this line!!
}
所以,如果有人知道如何使用 - > add($ element)和laravel分页,我将非常感激。
答案 0 :(得分:0)
我不认为Collection有一个名为add的函数。我也不确定你是否可以直接从Paginator循环,至少不是模型。我相信你需要把它改成
foreach( $tests->getItems() as $sms ){
.....
}
它以这种方式工作的原因是当你对一个集合进行分页时,你得到了一个Illuminate \ Pagination \ Paginator类的实例,当你循环时,你基本上是循环类对象而不是你的项目。