主页 > 后端 > thinkphp教程 >
来源:自学PHP网 时间:2014-11-28 23:17 作者: 阅读:次
[导读] 字段定义:系统会在模型首次实例化的时候自动获取数据表的字段信息(而且只需要一次,以后会永久缓存字段信息,除非设置不缓存或者删除),如果是调试模式则不会生成字段缓存文件...
ThinkPHP模型--字段、数据主键字段定义:系统会在模型首次实例化的时候自动获取数据表的字段信息(而且只需要一次,以后会永久缓存字段信息,除非设置不缓存或者删除),如果是调试模式则不会生成字段缓存文件,则表示每次都会重新获取数据表字段信息. 字段缓存保存在Runtime/Data/_fields/ 目录下面,缓存机制是每个模型对应一个字段缓存文件(而并非每个数据表对应一个字段缓存文件),命名格式是: 数据库名.模型名.php 例如: thinkphp.User.php 表示User模型生成的字段缓存文件 thinkphp.Article.php 表示Article模型生成的字段缓存文件 可以通过设置DB_FIELDS_CACHE 参数来关闭字段自动缓存,如果在开发的时候经常变动数据库的结构,而不希望进行数据表的字段缓存,可以在项目配置文件中增加如下配置: 'DB_FIELDS_CACHE'=>false 注意:调试模式下面由于考虑到数据结构可能会经常变动,所以默认是关闭字段缓存的. 如果需要显式获取当前数据表的字段信息,可以使用模型类的getDbFields方法来获取当前数据对象的全部字段信息,例如: $fields = $User->getDbFields(); 如果你在部署模式下面修改了数据表的字段信息,可能需要清空Data/_fields目录下面的缓存文件,让系统重新获取更新的数据表字段信息,否则会发生新增的字段无法写入数据库的问题. 如果不希望依赖字段缓存或者想提高性能,也可以在模型类里面手动定义数据表字段的名称,可以避免IO加载的效率开销,在模型类里面添加fields属性即可,定义格式如下:
其中_pk 表示主键字段名称 _autoinc 表示主键是否自动增长类型,定义了fields属性之后,就不会自动获取数据表的字段信息了,如果有修改或者增加字段,必须手动修改fields属性的值. 数据主键 系统会自动识别当前操作的数据表的字段信息和主键名称,默认为id,在外部获取当前数据对象的主键名称:$pk = $Model->getPk(); |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com