TP5使用Db类,和$Model,update/insert字段限制,分享一下

浏览:9036 发布日期:2017/03/23 分类:ThinkPHP5专区 关键字: Db TP5 thinkphp
小白一个,看手册不认真,自己挖坑自己跳

在TP5中关于数据字段限制或检查的有strict(bool)方法,allowField(true)方法

一、strict(bool)方法,用于设置是否严格检查字段名

1、 如果开启字段严格检查的话,在更新和写入数据库的时候,一旦存在非数据表字段的值,则会抛出异常,如果没有开启,默认情况下不合法数据字段自动删除。

2、 默认是开启的,可以在database.php配置,配置参数fields_strict决定

自己 第一次使用Db类就遇到这个问题

字段:role 表中不存在,

$result = Db::table('admin_user')->insert($data);



3、使用Db类限制更新/插入某些字段,只能自己手动unset掉不需要的字段在更新/插入

二、Model类的allowField方法,用于过滤非数据表字段的数据,也可以指定某些字段写入

// 过滤post数组中的非数据表字段数据
$user->allowField(true)->save();

// post数组中只有name和email字段会写入
$user->allowField(['name','email'])->save();


allowField方法更人性话,有木有?


-----------一个小白tp学习之路,不喜勿喷
最佳答案
评论( 相关
后面还有条评论,点击查看>>