我们从数据库查出来了数据;
但是我们发现它并不是我们以为的数组形式;
这就要讲讲 collection 对象了;
laravel 中 collection 是比数组更高等公民般的存在;
我们可以像对待数组一样的来操作 collection;
而且它还能以链式操作的方式便捷易读的处理数据;
所有文字都苍白;所有语言都无力;
咱直接举几筐栗子更直观的来讲解;
我们定义一个数组;
$array = [
'', '帅', '白', 0, '俊', false, '遥', null, '博', '客'
];
把上面这个数组变成 cllection 很简单;
直接调用 collect
函数即可;
$collect = collect($array);
然后我们就能像数组一样取值循环了;
dump($collect[0]);
foreach ($collect as $K => $v) {
dump($v);
}
但如果仅仅是这就不值得追捧了;
下面才是见证奇迹的时候;
我有这么一系列操作;
把 $array
中的帅字去掉;
接着过滤掉其中为假的值;
最后用 -
连接起来拼成 '白俊遥博客';
我们先用数组函数来实现;
// unset() 删除 '帅' 字
// array_filter() 过滤为假的值
// implode() 用 - 连接
unset($array[1]);
dump(implode('-', array_filter($array)));
我们再用 collect 再实现一遍;
// forget() 删除 '帅字'
// filter() 过滤为假的值
// implode() 用 - 连接
dump($collect->forget(1)->filter()->implode('-'));
两种方式打印出来的结果是一样的;
如果操作再复杂点;
都用函数一层一层的的套的话;
想想都让人崩溃;
还是链式操作即直观又美观;
有木有再次开始感受到 laravel 的优雅了;
这只是拿出了 3 个方法示例;
collection 其实有一大堆的功能可以供我们使用;
完整的文档链接在这里;
童鞋们可以挨个自行体验了;
Laravel 的集合 Collection
由于从数据库取出的数据本身就是一个 collection ;
所以可以直接使用这些方法;
DB::table('articles')->where('id', '>', 1)->get()->pluck('title')->implode('-');
我当年刚学 laravel 的时候还是习惯数组;
所以每次都用 ->toArray()
把 collection 转成数组了;
甚至都在改造框架以达到从数据库取出来直接是数组的数据类型;
直到后来我慢慢了理解 collection 的强大;
才深深的明白了我的愚蠢;
所以我特意把 collection 拎出来写一篇文章;
希望能引导童鞋们正确并善于使用集合;
本文为白俊遥原创文章,转载无需和我联系,但请注明来自白俊遥博客https://baijunyao.com 欢迎捐赠赞赏加入组织创建QQ群及捐赠渠道
随心。 :大佬,如果是做微信小程序之类的,就不能在视图中设置{{csrf_field()}}这个来防止外站提交了,这个时候该怎么做呢
2019-02-20 17:58:19 回复
建奇A :小程序属于api类操作,用户信息提交的时候要带上uid和token等加密参数 来验证用户是否合法用户,验证参数可以放到body体也可以放到header头
2019-03-30 19:03:35 回复
天青色等烟雨 :很棒的文章!支持!
2018-10-05 22:18:02 回复
花舞千魂殇 :我也是 一看到集合就想转为数组 , 但是经过阿婆主介绍 发现这个集合真的很潮啊
2018-08-01 09:23:16 回复
老铁 echo(""); :666啊
2018-03-04 09:53:00 回复
心雨 :4bcb76924cfd670d92010a19f6af5a4d感谢分享分
2018-03-03 17:44:18 回复
心雨 :6f92c250d196793b6475f0d3f2dd3cc2感谢分享
2018-03-03 17:43:09 回复
二十三岁的九局下半丶 :元宵节快乐!!!
2018-03-02 15:49:59 回复
云淡风晴 :同乐;哈哈;
2018-03-04 22:29:48 回复
mrhopelee :从一看到十,很棒的入门文章,感谢~
2018-03-02 15:37:58 回复
=͟͟͞͞若=͟͟͞͞水 :+1
2018-08-24 11:54:05 回复
cantinzing :坐等更新
2018-03-02 10:40:19 回复
云淡风晴 :不用等了;更新完了;
2018-03-04 22:30:02 回复
yymmhh :laravel中的集合功能强大的一笔
2018-02-28 19:52:36 回复
加藤非 :非常谢谢大佬分享
2018-02-27 21:46:15 回复
徐逸以轩 :感谢分享
2018-02-25 21:28:19 回复
国飞Zhang。 :b645c683ae94c55de46d50bde1477ae3 出现这个代码怎么回事
2018-02-24 16:42:01 回复
青衫拂袖 :
2018-02-23 22:40:54 回复
加藤非 :哈哈哈
2018-02-27 21:50:22 回复
等待 :哈哈哈
2018-02-13 00:23:28 回复
为人生而奋斗! :不错啊
2018-02-09 22:32:16 回复
flyingdreams1111 :博主,后续还会有嘛?前头的已学完
2018-02-09 20:35:08 回复
云淡风晴 :更新完了;
2018-03-04 22:30:24 回复
Jerry :
2018-02-08 15:16:35 回复
快乐远〖航〗 :相当透彻
2018-02-06 20:13:35 回复
J :
2018-02-06 17:38:31 回复
uw :
2018-02-08 15:58:31 回复
你 :想看一下你这边的回复是无限级的吗?
2018-02-09 18:53:40 回复
i++ :是的吧
2018-02-24 14:31:32 回复
null : 腻害
2018-02-05 17:52:15 回复
微链源码网 :5G云网络
2018-02-05 15:52:25 回复
nothing. :厉害
2018-02-05 12:03:29 回复
木-微博 :
2018-02-05 01:29:46 回复
火你大哥 :看看
2018-03-21 20:59:46 回复
最新评论