今天遇到一个问题,需要将查询出来的数据做一些处理也存入elasticsearch里,在model中自定义了一个方法。但使用get()后无法使用提示 BadMethodCallException
。后来才想到,原来get()返回的是一个集合,不是一个对象。
网上大多例子都使用User::find()->func()
的方式,但是我用get()
时,Laravel一直以上报错。
需要注意:
User::where()
返回的是QueryBuilder
类型,当调用first()
返回对象
,get()
返回的是Collection
类型。要调用model里的函数需要在对象上调用,即跟在first()
或者find()
后面