关于isEmpty() 的问题

来源:11-3 使用ES6构建面向对象的JS代码及访问服务器API获取数据

轩辕小齐V

2017-08-01

http://szimg.mukewang.com/59803ca000016a0e13140516.jpg

http://szimg.mukewang.com/59803ca000013f3b12610524.jpg

http://szimg.mukewang.com/59803ca0000187ca07760673.jpg



请问

1.$categories= categoryModel::all([],'img'); 这里使用all方法;

2. $banner=self::with(['items','items.img'])->find($id); 这里使用 with 后;

这些地方为啥返回的都不是collection 对象?以至于isEmpty()不能使用?

附:代码一点一点对的 没有问题 模型也继承了BaseModel

http://szimg.mukewang.com/598045040001668d13420638.jpg

http://szimg.mukewang.com/5980450500017d7013420694.jpg

这里试着用断点 得出:Product 中返回的是collection 对象;

但是Banner 中返回的是 model 对象;

3.这是为啥?难道是因为 all方法 与with 使用后就不在是collection对象了?那他们是什么对象?

4.如果此时应该如何判空呢? 

我实在是搜不到答案才问的,麻烦大家指教下;


写回答

2回答

正在改bug的小白

2018-10-24

在tp5里面追后的查询命令只有是select 返回的才是一个数据集 才附带了 isEmpty()方法,如果是find 和get 查询的是单个数据, 所以返回的不是一个数据集 而是一个model 对象 他没有isEmpty方法。

//img.mukewang.com/szimg/5bd01ab20001552c05420357.jpg


find ,get 方法是返回的是model对象是无isEmpty方法的 


我用all方法的时候虽然编译器显示不存在isEmpty()方法 但是调试的时候确实是一个collection 数据集,我也不知道为什么。

//img.mukewang.com/szimg/5bd01d6a0001c04404080157.jpg

//img.mukewang.com/szimg/5bd01d6a0001edbc04570218.jpg

这个想问问七月老师


1
0

YTL003

2017-08-25

我记得好像模型的返回值你设置成了数据集而返回的数据是单个数据而不是一组数据那么它一样返回的是一个模型对象。你可以尝试进入调试看一下。

0
0

微信小程序电商实战 从前端到后端的全流程精讲

全栈工程师/前后端都讲/架构思想/ RESTFul API、MySQL表设计

4805 学习 · 4382 问题

查看课程