站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
ThinkPHP开发指南-模型之获取字段
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
<span style="border:1px solid #000; float:right; text-align:center; padding:6px;"><strong>导航:</strong>[[ThinkPHP开发指南-模型|上一页]]</span> <div style="clear:both;"></div> 我们在UserModel类里面根本没有定义任何User表的字段信息,但是系统是如何做到属性对应数据表的字段呢?这是因为[[ThinkPHP]]可以在运行时自动获取数据表的字段信息(确切的说,是在第一次运行的时候,而且只需要一次,以后会永久缓存字段信息,除非设置不缓存或者删除),包括数据表的主键字段和是否自动增长等等,如果需要显式获取当前数据表的字段信息,可以使用模型类的getDbFields方法来获取。如果你在开发过程中修改了数据表的字段信息,可能需要清空Data/_fields目录下面的缓存文件,让系统重新获取更新的数据表字段信息。 如果你没有定义模型类,进行相关操作的时候一样会生成字段缓存文件。也可以在模型类里面手动定义数据表字段的名称,可以避免IO加载的效率开销,在模型类里面添加fields属性即可,定义格式如下: '''PHP代码''' <pre> class UserModel extends Model{ protected $fields = array( 'id', 'username', 'email', 'age', '_pk'=>'id', '_autoinc'=>true ) } </pre> 其中_pk 表示主键字段名称 _autoinc 表示主键是否自动增长类型.可以通过设置DB_FIELDS_CACHE 参数来关闭字段自动缓存,如果在开发的时候经常变动[[数据库]]的结构,而不希望进行数据表的字段缓存,可以在项目配置文件中增加如下配置: '''PHP代码''' <pre> 'DB_FIELDS_CACHE'=>false </pre> 调试模式下面由于考虑到数据结构可能会经常变动,所以默认是关闭字段缓存的。ThinkPHP的默认约定每个数据表的主键名采用统一的id作为标识,并且是自动增长类型的。系统会自动识别当前操作的数据表的字段信息和主键名称,所以即使你的主键不是id,也无需进行额外的设置,系统会自动识别。要在外部获取当前数据对象的主键名称,请使用下面的方法: '''PHP代码''' <pre> $pk = $Model->getPk(); </pre> 目前不支持联合主键的自动操作。在个别情况下,可能不需要对当前操作的数据表进行字段缓存,或许是由于采用了动态方式或者当前模型根本没有任何相关的数据表,我们可以设置autoCheckFields属性来关闭某个模型类的字段获取和缓存。 *使用getDbFields方法可以获取当前数据对象的全部字段信息: '''PHP代码''' <pre> $fields = $User->getDbFields(); </pre> [[category:ThinkPHP]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)