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

Thinkphp之字段缓存

WBOY
WBOY원래의
2016-06-06 20:08:171218검색

今天在应用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, [...]
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.