-2

我见过两种分页方式,我想知道它们之间的区别。或者,如果有严格的方法来使用它们中的任何一个。请不要介意示例中使用的数据类型。

第一

 public function rules()
{
    return [
        'query_value' => 'string',
        'status'      => ['string', Rule::in(BaseModel::STATUS_CODES)],
        'pagination'  => 'integer',
    ];
}

public function paginationResult()
{
    return !is_null($this->get('pagination')) && $this->get('pagination') > 0 ? $this->get('pagination') : 10;
}

在控制器中

$this->itemsPerPage = $filterRequest->paginationResult();

第二个

$users = User::where('votes', '>', 100)->paginate(10);
4

1 回答 1

0

表单请求类

class UserRequest extends FormRequest
{
    public function rules()
    {
        return [
            'query_value' => 'string',
            'status'      => ['string', Rule::in(BaseModel::STATUS_CODES)],
            'pagination'  => 'integer',
        ];
    }

    public function paginationValue()
    {
        return $this->pagination ?: 10;
    }
}

然后在控制器中

public function index(UserRequest $request)
{
    $users = User::where('votes', '>', 100)->paginate($request->paginationValue());

    //...rest of method code
}

paginate()方法将返回一个实例,Illuminate\Pagination\LengthAwarePaginator这意味着您可以显示类似1 2......的链接9 10- numbers 显示分页结果的页码

另一种分页方法是使用simplePaginate()which 将返回 的实例Illuminate\Pagination\Paginator,这意味着您可以将链接显示为Prev Next

于 2020-12-27T08:53:30.917 回答