Home >php教程 >php手册 >Thinkphp之字段缓存

Thinkphp之字段缓存

WBOY
WBOYOriginal
2016-06-06 20:08:171217browse

今天在应用thinkphp框架开发的程序做些二次开发修改, 其中有改动到数据结构,新增了几个字段. 调用 M(‘xxx’)-add($data)? 插入值时,新增的字段数据总是插入不进去,每次都是默认的值, 一直找看是不是什么语句写错了, 找了半天也没出个所以然来.? 后来将模型

今天在应用thinkphp框架开发的程序做些二次开发修改, 其中有改动到数据结构,新增了几个字段. 调用 M(‘xxx’)->add($data)? 插入值时,新增的字段数据总是插入不进去,每次都是默认的值, 一直找看是不是什么语句写错了, 找了半天也没出个所以然来.? 后来将模型对象打印出来仔细查看,发现-他的 protected :成员变量 $fields? 字段信息 中没有我刚才添加的新字段名称.? 于是恍然—-缓存了…?? 清空缓存 . 终于可以正常插入数据了. 原来TP在配置文件中如果没有关闭字段缓存设置,默认是开启的,只要一运行它就会将数据字段信息缓存到~Runtime/Data/_files? 文件夹下,并以数组方式存放在文件中.??? protected $fields = array(….); 当然你也可以在模型类里面手动定义数据表字段的名称,可以避免IO加载的效率开销,在模型类里面添加fields属性即可,定义格式如下: ? class UserModel extends Model{ protected $fields = array( ‘id’, ‘username’, ‘email’, ‘age’, ‘_pk’=>’id’, ‘_autoinc’=>true )} 其中_pk 表示主键字段名称 _autoinc 表示主键是否自动增长类型 可以通过设置DB_FIELDS_CACHE 参数来关闭字段自动缓存,如果在开发的时候经常变动数据库的结构,而不希望进行数据表的字段缓存,可以在项目配置文件中增加如下配置: 把这段写在config.php里面 ? ‘DB_FIELDS_CACHE’=>false var ujian_config = { 'num':6, 'showType':2, [...]
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn