混淆了 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的更多相关文章

  1. Jade报错:Invalid indentation,you can use tabs or spaces but not both问题

    现象:通过html生成jade文件之后,更改jade文件时,语句没什么问题的情况下,jade文件编译不通过,报错:Invalid indentation,you can use tabs or spa ...

  2. mysql创建表时,设置timestamp DEFAULT NULL报错1067 - Invalid default value for 'updated_at'

    问题背景: 线上的linux服务器上的mysql服务器中导出数据库的结构.想要在本地创建一个测试版本 导出后再本地mysql上运行却报错   1067 - Invalid default value ...

  3. 数据库查询语句报错-ORA-00911: invalid character

    数据库查询语句报错-ORA-00911: invalid character 根据自己经验总结下: 1.都是分号惹的祸,有时候sql语句后面有分好导致这种错误 2.还有一种是从别处copy过来的sql ...

  4. CocoaPods pod install的时候报错:invalid byte sequence in UTF-8 (ArgumentError)解决办法

    CocoaPods pod install的时候报错:invalid byte sequence in UTF-8 (ArgumentError)解决办法: 基本可以确定是Podfile中的内容编码有 ...

  5. ssh调用matplotlib绘图报错RuntimeError: Invalid DISPLAY variable

    1.问题:在本地用matplotlib绘图可以,但是在ssh远程绘图的时候会报错 RuntimeError: Invalid DISPLAY variable 2.原因:matplotlib的默认ba ...

  6. golang解析json报错:invalid character '\x00' after top-level value

    golang解析json报错:invalid character '\x00' after top-level value 手动复制字符串:{"files":["c:/t ...

  7. mybatis报错:Invalid bound statement (not found)

    mybatis报错:Invalid bound statement (not found)的原因很多,但是正如报错提示一样,找不到xml中的sql语句,报错的情况分为三种: 第一种:语法错误 Java ...

  8. shell脚本if判断语句报错[: too many arguments的两种原因

    shell脚本,if判断语句报错[: too many arguments 我遇到过两种情况: 1.第一中情况就是网上大家说的,字符串变量中可能存在空格,shell解析时将其认为是多个参数,再进行判断 ...

  9. Springboot项目下mybatis报错:Invalid bound statement (not found)

    mybatis报错:Invalid bound statement (not found)的原因很多,但是正如报错提示一样,找不到xml中的sql语句,报错的情况分为三种: 第一种:语法错误 Java ...

随机推荐

  1. 附录A Spring Boot应用启动器

    spring Boot应用启动器基本的一共有44种,具体如下: 1)spring-boot-starter 这是Spring Boot的核心启动器,包含了自动配置.日志和YAML. 2)spring- ...

  2. CSS实现文字竖排排版

    CSS实现文字竖排 注意: writing-mode: vertical-rl;存在兼容性问题,在IE上正常,在谷歌的低版本上可能识别不了. 如果文字少的话考虑直接在每一个文字中间加一个<br& ...

  3. Spark记录-SparkSQL一些操作

    scala>val spark=new org.apache.spark.sql.SQLContext(sc) user.json {"age":"45" ...

  4. vue自学入门-1(Windows下搭建vue环境)

    本人是一个喜欢动手的程序员,先跑起来个HelloWorld,增加感性认识,这三篇入门文章,花了不到一个小时,从网上找资料,程序跑通后,整理出来的,有的新人可能去哪找资料,运行代码都不知道,分享出来,大 ...

  5. FastReport.Net报表故障排除方法

    有不少开发人员在使用fastreport报表时遇到过这样的问题,报表设计器工作时,一些工具栏或者工具窗口被损坏了.此时,你应该删除配置文件,该文件是在你启动fastreport时创建的.它位于以下文件 ...

  6. delimiter 与 存储过程

    1.如此执行语句不行,需要在 delimiter IF not EXISTS ( SELECT * FROM information_schema. COLUMNS WHERE table_schem ...

  7. 【通信】Jave代码中生成url http请求

    /** * 向指定 URL 发送POST方法的请求 * * @param url * 发送请求的 URL * @param param * 请求参数,请求参数应该是 name1=value1& ...

  8. MySQL Load Data InFile 数据导入数据库

    常用如下: Load Data InFile 'C:/Data.txt' Into Table `TableTest` Lines Terminated By '\r\n'; 这个语句,字段默认用制表 ...

  9. python - 计算器 程序练习

    v1.0 计算器(数据内不含括号方式:) import re def jisuan(a,b,c): sun_count = 0 if c =="+": sun_count = st ...

  10. Kali2.0更新

    下载链接:猛戳这里 更新以后速度与界面友好性提高了! 界面仿造了ubuntu和fedora,应用也有很多小图标!这个对个人来说比较赞 安装以后的几件事 1.安装vmtools,方法跟1.0一样! ta ...