ORM 如何不用循环只返回表中单列的数组集合 - pluck

与前端的交互或特定场景中(apahe/echarts),有个常用的交互场景,比如前端需要展示所有用户的姓名,不需要展示用户的其他信息,那我们可以直接使用以下伪代码来实现:

$users = User::all()->paginate(15);

但是这样会给前端返回很多无用的信息,比如 email 等,那么可以增加select 或者使用API 资源 resource 来解决,但是这两种方式都会给前端返回一个二维数组,前端一定更喜欢返回一个一维数组,直接循环显示就可以了。

之前我都是使用上面的方法,然后在二次循环,构造一个一维数组的,今天偶然发现了 pluck 方法,这个是在辅助函数–数组下看到的,后来在数据库文档中也发现了,有了他就方便多了,直接获取单列的数据,还是一维数组。

$userNames = User::oldest()->pluck('name')->toArray();

感觉之前的方式好差劲,赶紧悄悄的都改成了这种方式,总结起来,还是文档看的少了。

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1

没事就多多翻看文档,你会时不时发现意外惊喜 :joy:

3年前 评论
24K大白羊 (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!