请大家忽略这个问题,是正常的,Attr 写成了 Arrt 了,很低级的错误!
用save()
使用 Db::query() 原生查询呗
好像是。因为我实例化一个继承模型的对象,然后调用insert方法,其中该自动加密的没有加密。。
所以,,
我个人理解是 Db类是对PHP自带的数据库操作进行优化封装成Query主要是语句和Connection主要是操作在一起返回给Db类而model类是对他们和其他的类进行再一次的优化封装。
就那老师讲的那个比如你在model定义了获取器或修改器也只能在model里用
Db里没有这个方法两个并不会 修改(修改或插入)值 或 获取值
而且model并不在直接在Db里优化Db我感觉有点像他们的对外的接口所以没影响
开始用的Update不行,使用save()方法才行
User::update(['sex'=>1],['id'=>16]); //调用静态方法update()会自动调用save()方法完成更新
或者直接调用save()方法:
User::where(['id'=>16])->save(['sex'=>1);
只有save()方法才会自动触发你在模型中创建的修改器:
修改器的代码,我是的猜测哟~~
protected function setSexAttr($value){ $arr = [0=>'男', 1=>'女', 2=>'保密']; return $arr[$value]; }