Laravel collection 报错 join(): Invalid arguments passed
混淆了 array 与 collection,join 并不支持 collection.
array 与 collection 不同的 join 实现
- collect([1, 2, 3, 4, 5])->implode('-');
- join('-', [1, 2, 3, 4]);
将 array 转换成 collection
$collection = collect([1, 2, 3]);
将 collection 转换成 array
$collection->toArray();
all() 与 toArray() 的区别
如果 collection 中的 item 是 model,那么
- toArray() 会把 model 也转换成对应的 array
- all() 依然保留原 model
collection 在 laravel 中频繁使用
所有的 eloquent 查询返回都是一个 collection 实例,而不是 array。
我更喜欢 collection 的原因
- toJson() 比 json_encode() 写起来更顺手,因为实例方法比方法中还要缀上源数据对象要容易记忆的多
- collection 扩充了 array 的数据操作集,在数据处理上开发效率要高很多,这也是 Python 的优势
如何判断当前对象是 array 还是 collection
laravel tinker 中测试
$a = collect([1, 2, 3])->all()
>>> gettype($a)
=> "array"
>>> $c = collect([1, 2, 3])
>>> gettype($c)
=> "object"
>>> get_class($c)
=> "Illuminate\Support\Collection"
>>> get_class($a)
PHP Warning: get_class() expects parameter 1 to be object, array given on line 1
可见,gettype 可以判断是否是 array,但是 gettype 无法直接得知具体的 object 对应的 class,需要调用 get_class。
如何在 laravel 项目之外使用 collection
https://github.com/tightenco/collect
Laravel collection 报错 join(): Invalid arguments passed的更多相关文章
- Jade报错:Invalid indentation,you can use tabs or spaces but not both问题
现象:通过html生成jade文件之后,更改jade文件时,语句没什么问题的情况下,jade文件编译不通过,报错:Invalid indentation,you can use tabs or spa ...
- mysql创建表时,设置timestamp DEFAULT NULL报错1067 - Invalid default value for 'updated_at'
问题背景: 线上的linux服务器上的mysql服务器中导出数据库的结构.想要在本地创建一个测试版本 导出后再本地mysql上运行却报错 1067 - Invalid default value ...
- 数据库查询语句报错-ORA-00911: invalid character
数据库查询语句报错-ORA-00911: invalid character 根据自己经验总结下: 1.都是分号惹的祸,有时候sql语句后面有分好导致这种错误 2.还有一种是从别处copy过来的sql ...
- CocoaPods pod install的时候报错:invalid byte sequence in UTF-8 (ArgumentError)解决办法
CocoaPods pod install的时候报错:invalid byte sequence in UTF-8 (ArgumentError)解决办法: 基本可以确定是Podfile中的内容编码有 ...
- ssh调用matplotlib绘图报错RuntimeError: Invalid DISPLAY variable
1.问题:在本地用matplotlib绘图可以,但是在ssh远程绘图的时候会报错 RuntimeError: Invalid DISPLAY variable 2.原因:matplotlib的默认ba ...
- golang解析json报错:invalid character '\x00' after top-level value
golang解析json报错:invalid character '\x00' after top-level value 手动复制字符串:{"files":["c:/t ...
- mybatis报错:Invalid bound statement (not found)
mybatis报错:Invalid bound statement (not found)的原因很多,但是正如报错提示一样,找不到xml中的sql语句,报错的情况分为三种: 第一种:语法错误 Java ...
- shell脚本if判断语句报错[: too many arguments的两种原因
shell脚本,if判断语句报错[: too many arguments 我遇到过两种情况: 1.第一中情况就是网上大家说的,字符串变量中可能存在空格,shell解析时将其认为是多个参数,再进行判断 ...
- Springboot项目下mybatis报错:Invalid bound statement (not found)
mybatis报错:Invalid bound statement (not found)的原因很多,但是正如报错提示一样,找不到xml中的sql语句,报错的情况分为三种: 第一种:语法错误 Java ...
随机推荐
- 常用nginx rewrite重定向-跳转实例:
1,将www.myweb.com/connect 跳转到connect.myweb.com rewrite ^/connect$ http://connect.myweb.com permanent; ...
- mysql 之各种 join 之间的关系
一.了解一下 mysql 中所拥有的各种 join left join(左联接):返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接):返回包括右表中的所有记录和左表中 ...
- python中的位运算符
按位运算符是把数字看作二进制来进行计算的.Python中的按位运算法则如下,下表中变量 a 为 60,b 为 13,二进制格式如下: a = 0011 1100 b = 0000 1101 ----- ...
- ;(function ($, undefined){ })(jQuery); 的使用及说明
对于很多初学者来说很难明白这表示什么,下边我将为大家介绍其相应的作用. 1.代码最前面的分号,可以防止多个文件压缩合并以为其他文件最后一行语句没加分号,而引起合并后的语法错误. 2.匿名函数(func ...
- linux 更改文件夹所有者
更改“tp5”文件的所有者为”www” chown -R tp5/ www 修改目录及其子目录的用户组为“www” chgrp -R www tp5 同时更改文件或目录的所有者和用户组 chown - ...
- 五、u-boot 启动流程---u-boot.lds
5.1 u-boot.lds 链接脚本分析 uboot 编译出来的第一个链接脚本就是执行 u-boot.lds 链接脚本,去掉里面无用的和没有定义的,进行分析. /* 配置头文件,自动生成的,包含芯 ...
- luogu 1026 统计单词个数
此题 字符串匹配+dp 确实我的kmp,哈希需要练一练了,忘干净可咋办 补救用下string,十分方便 e.g: 1.询问a[i]是否是x子串,可以截取并判断前缀 x为截取串 x.find(a[i]) ...
- 第16月第25天 tableView设置UITableViewStyleGrouped顶部有空余高度
1. 正确的处理方法 1)设置标头的高度为特小值 (不能为零 为零的话苹果会取默认值就无法消除头部间距了) UIView *view = [[UIView alloc]initWithFrame:CG ...
- oracle锁表
一.锁表的处理 Oracle锁表比较简单,查询锁表的session杀掉就可以了. 1.以下几个为相关表 SELECT * FROM V$LOCK; SELECT * FROM V$SQLAREA; S ...
- Centos7下编译CDH版本hadoop源码支持Snappy压缩
1 下载snappy包并编译 wget https://github.com/google/snappy/releases/download/1.1.3/snappy-1.1.3.tar.gz tar ...