Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 覆盖Laravel中的分页器项_Php_Laravel_Laravel 5 - Fatal编程技术网

Php 覆盖Laravel中的分页器项

Php 覆盖Laravel中的分页器项,php,laravel,laravel-5,Php,Laravel,Laravel 5,我有一个来自复杂查询的ID列表。我对这个复杂查询的响应进行分页,然后使用这些ID获得有说服力的模型。然后我将它通过一个带有分页元数据的资源 laravelAbstractPaginator类保护项属性,因此您无法轻松覆盖它们。我有一个使用ReflectionProperty的解决方案,但我想要一个更简单的解决方案 下面的作品很管用,但并不特别优雅 // $studentIds == Long complicated query that would return 1000s of student

我有一个来自复杂查询的ID列表。我对这个复杂查询的响应进行分页,然后使用这些ID获得有说服力的模型。然后我将它通过一个带有分页元数据的资源

laravel
AbstractPaginator
类保护
属性,因此您无法轻松覆盖它们。我有一个使用
ReflectionProperty
的解决方案,但我想要一个更简单的解决方案

下面的作品很管用,但并不特别优雅

// $studentIds == Long complicated query that would return 1000s of students
$data = $studentIds->paginate(); // Execute the query limited to 15.

// Use ids to get eloquent models for our students
$students = Student::whereIn('id', $data->pluck('id'))->get();

// Overwrite paginate `items` attribute so that our response contains pagination meta.
$rp = new \ReflectionProperty('Illuminate\Pagination\AbstractPaginator', 'items');
$rp->setAccessible(true);
$rp->setValue($data, $students);

return new StudentResourceCollection($data);

使用
setCollection()
方法:

$data->setCollection($students);

使用
setCollection()
方法:

$data->setCollection($students);