Comments (8)
find为空时本身就返回的null,你在null上面执行hidden方法肯定会报错,select为空是返回的一个空的数据集对象,这个数据集对象是有hidden方法的,只是执行之后会遍历数据集里面的对象依次执行hidden方法,数据集为空也就没有遍历 当然不会报错。
所以在find方法后需要自行判断是否为null,或者使用try catch捕获异常
from think-orm.
find为空时本身就返回的null,你在null上面执行hidden方法肯定会报错,select为空是返回的一个空的数据集对象,这个数据集对象是有hidden方法的,只是执行之后会遍历数据集里面的对象依次执行hidden方法,数据集为空也就没有遍历 当然不会报错。 所以在find方法后需要自行判断是否为null,或者使用try catch捕获异常
你没懂我的意思,我的意思是像select可以返回数组对象, find也一样返回, 就不要null了, 有些场景需要同步,反而觉得不统一
from think-orm.
find为空时本身就返回的null,你在null上面执行hidden方法肯定会报错,select为空是返回的一个空的数据集对象,这个数据集对象是有hidden方法的,只是执行之后会遍历数据集里面的对象依次执行hidden方法,数据集为空也就没有遍历 当然不会报错。 所以在find方法后需要自行判断是否为null,或者使用try catch捕获异常
当然find有个findOrEmpty方法, 我就觉得 直接用这个方法返回就行, 干嘛非要来个null? 不解
如果能统一, 像是结果结果获取后的操作很会统一舒服, append/hidden这些, 那如果按现在这样,我还要判断一下是不是null, 如果按select来根本不需要判断数组是不是空
from think-orm.
find为空时本身就返回的null,你在null上面执行hidden方法肯定会报错,select为空是返回的一个空的数据集对象,这个数据集对象是有hidden方法的,只是执行之后会遍历数据集里面的对象依次执行hidden方法,数据集为空也就没有遍历 当然不会报错。 所以在find方法后需要自行判断是否为null,或者使用try catch捕获异常
当然find有个findOrEmpty方法, 我就觉得 直接用这个方法返回就行, 干嘛非要来个null? 不解
如果能统一, 像是结果结果获取后的操作很会统一舒服, append/hidden这些, 那如果按现在这样,我还要判断一下是不是null, 如果按select来根本不需要判断数组是不是空
那append/hidden就可以给这个空对象追加/隐藏数据了,但是这个数据在数据库中是不存在的,那别的比如save/delete方法是不是会报错?会导致程序更加容易出现问题的,排查问题起来也非常麻烦
from think-orm.
find为空时本身就返回的null,你在null上面执行hidden方法肯定会报错,select为空是返回的一个空的数据集对象,这个数据集对象是有hidden方法的,只是执行之后会遍历数据集里面的对象依次执行hidden方法,数据集为空也就没有遍历 当然不会报错。 所以在find方法后需要自行判断是否为null,或者使用try catch捕获异常
当然find有个findOrEmpty方法, 我就觉得 直接用这个方法返回就行, 干嘛非要来个null? 不解
如果能统一, 像是结果结果获取后的操作很会统一舒服, append/hidden这些, 那如果按现在这样,我还要判断一下是不是null, 如果按select来根本不需要判断数组是不是空那append/hidden就可以给这个空对象追加/隐藏数据了,但是这个数据在数据库中是不存在的,那别的比如save/delete方法是不是会报错?会导致程序更加容易出现问题的,排查问题起来也非常麻烦
你的思维不要陷入一个死循环好不好? 我在讨论框架逻辑, 你在说业务流程, 你能明白我在说什么吗
在append之前,框架对于空数据就跳过了! select不就这么干的吗?
from think-orm.
find为空时本身就返回的null,你在null上面执行hidden方法肯定会报错,select为空是返回的一个空的数据集对象,这个数据集对象是有hidden方法的,只是执行之后会遍历数据集里面的对象依次执行hidden方法,数据集为空也就没有遍历 当然不会报错。 所以在find方法后需要自行判断是否为null,或者使用try catch捕获异常
当然find有个findOrEmpty方法, 我就觉得 直接用这个方法返回就行, 干嘛非要来个null? 不解
如果能统一, 像是结果结果获取后的操作很会统一舒服, append/hidden这些, 那如果按现在这样,我还要判断一下是不是null, 如果按select来根本不需要判断数组是不是空那append/hidden就可以给这个空对象追加/隐藏数据了,但是这个数据在数据库中是不存在的,那别的比如save/delete方法是不是会报错?会导致程序更加容易出现问题的,排查问题起来也非常麻烦
你的思维不要陷入一个死循环好不好? 我在讨论框架逻辑, 你在说业务流程, 你能明白我在说什么吗 在append之前,框架对于空数据就跳过了! select不就这么干的吗?
本身append/each这类方法就是对获取数据之后进行后操作,所以没数据 也就到不了这些方法这里
from think-orm.
你需要在业务上使用select代替find方法····
from think-orm.
你需要在业务上使用select代替find方法····
好了, 到此为止, 咱俩交流结束, 谈论的不是一个层面
from think-orm.
Related Issues (20)
- 采用数组方式配置分布式的数据库参数的时候,报Array to string conversion错误 HOT 1
- 查询oracle的数据库里面有字段是CLOB类型,如何正确获取数据
- v3.0.15 在高并发环境下使用模型缓存查询报错
- 3.0.15中修复json字段导致无法过滤非法字段 HOT 2
- [特性] 提供模型字段类型转换的统一接口 HOT 1
- [BUG] 使用PGSQL 查询数据库时,使用函数 Find 返回数据始终为NULL HOT 1
- $receiver->where('email_id', $id)->delete();怎么也不能删除#issuecomment-2252198289 HOT 6
- ThinkORM 3.0.18 版本重大bug scope查询都失效了 HOT 4
- Db::raw 不支持传递参数绑定数据
- 插入数据时,出现:Illegal offset type报错 HOT 10
- formatDateTime处理'datetime_format' => '\\app\\common\\util\\ModelDateTime'的问题
- 我如何遍历模型的所有数据包括with的数据 HOT 6
- [特性] ORM考虑对`Enum` 的提供支持 HOT 2
- ORM 对于 `bigint`+无符号 支持需要修正 HOT 1
- 当前仓库的覆盖率报告缺少`Token`工作不正常
- v3.0.22使用defaultSoftDelete属性来时提示定义相同的属性 HOT 2
- $data = EmailReceiver::with('sender')->field('read_time,title')->select(); 又出现n+1问题
- 查询范围 HOT 1
- withSearch搜索器,在查询条件字段值为0时,withSearch方法中直接过滤掉了条件,导致查询结果异常。 HOT 9
- Non-static method think\Model::withAttr() cannot be called statically HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from think-orm.