You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 8中查询模型时如何选取指定属性并对结果实现分页?

  • pluck() 仅支持传入1~2个字段参数,返回的是一维数组或键值对数组,会直接破坏分页器结构,不适用于你需要保留分页对象的场景
  • only() 只能作用于单个模型实例或普通集合,不能直接在查询构造器、分页器对象上调用,所以直接调用不会生效

推荐解决方案(性能最优)

直接在查询阶段通过select()指定需要取出的字段,查出来的模型实例本身就只会携带指定字段,不会有冗余数据:

// 把第四个字段替换成你实际需要的属性名即可
$myRestaurants = Restaurant::active()->valid()
    ->select('id', 'name', 'icon', '第四个所需字段')
    ->paginate(10);

备用解决方案(适用于已经查询出全量数据的场景)

如果你的全量查询逻辑不能改动,可以对分页器内置的集合做转换,逐个提取指定字段:

$myRestaurants = Restaurant::active()->valid()->paginate(10);

$myRestaurants->getCollection()->transform(function ($restaurant) {
    return $restaurant->only('id', 'name', 'icon', '第四个所需字段');
});

两种方案得到的分页对象都可以直接传给Livewire组件,不会携带多余的模型属性。

内容的提问来源于stack exchange,提问作者ehsan mohiti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 20:36:03