toArray()
可以把查询出来的对象转成数组形式
如果是查询多个数据集可以用:->select()->toArray()
是没问题的
如果是查询单个数据用:find()->toArray()
时就会有问题
多个数据集查询不了数据会直接返回空数组
如果单个数据查询失败 find()
值就是null
,在调用toArray()
时就会失败
所以在单个数据查询时可以用以下的方法:
$m = MyModel::where($where)->find();
if($m){
//转成数组
$mData = $m->toArray();
}
$m = MyModel::where($where)->allowEmpty()->find()->isExists();
$m = MyModel::where($where)->allowEmpty()->find()->toArray();
$m = MyModel::where($where)->find();
if($m){
echo $m->id;
}
注意以下的写法
//以下写法不正确
MyModel::where($where)->find()->allowEmpty()->isExists(); //顺序不要乱
MyModel::where($where)->allowEmpty()->find('id')->isExists();
//要用以下的写法
MyModel::field(['id'])->where($where)->allowEmpty()->find()->isExists();