Laravel分页方法paginate的第二个参数['*']有什么作用?
Laravel paginate方法第二个参数说明
参数对应逻辑
你代码中调用的paginate方法,是Laravel数据库查询构建器/Eloquent模型提供的原生分页方法,完整参数顺序与含义为:
- 第一个参数
$paginationCount:指定每页返回的数据条数 - 第二个参数
['*']:指定数据库查询时需要检索的字段列表 - 第三个参数
'p1':指定分页在URL中的查询参数名,设置后访问指定分页时会使用?p1=页码的格式,替代默认的page参数名
['*']的具体作用
这个值的语义和SQL语句中的SELECT *完全一致,代表查询对应数据表的所有字段,也是Laravel分页方法的默认参数值。
如果表中存在text、blob等类型的大字段(比如合同正文、附件二进制内容),且业务场景不需要返回这些字段时,可以将该参数替换为实际需要的字段数组,减少不必要的查询开销,示例:
return $ContractCollection->paginate( $paginationCount, // 仅查询需要的3个字段,避免加载冗余大字段 ['id', 'contract_no', 'created_at'], 'p1' );
注意事项
如果是已经从数据库查询完成、转化为普通集合(Illuminate\Support\Collection)后调用的paginate方法,本身没有字段查询参数,此时传入['*']会触发参数不匹配错误。结合你的代码写法,当前调用场景属于数据库查询构建器/Eloquent实例的分页逻辑,符合上述参数规则。
内容的提问来源于stack exchange,提问作者geodatas
相关产品推荐
相关产品推荐

