TP 实例化模型

TP 实例化模型

例:new UserModel();

$userModel = new UserModel('库名.表名');

如果传了'库名.表名' 或 '表名',则设置$this->name = 表名;  否则$this->name =xxxModel 的前半部分

$this->db()方法来连接数据库

$this->db()方法中-->_checkTableInfo()--->$db->getFields()方法

$db->getFields()方法中使用了一个‘show columns from 表名’(或者 desc 表名)

$this->construct()--->$this->db()--->$this->_checkTableInfo()--->$this->flush--->$db->getFields()

注意:什么时间获取列名?(和配置文件加载顺序有关,app 的conf/debug.php 加载顺序优于Thinkphp 的conf/debug.php)

1、如果$this->fields属性为空,则自动获取

2、同时,如果DB_FIELDS_CACHE选项为false,则每次刷新都会分析列名

3、如果开启DB_FIELDS_CACHE选项为true,则意味着分析的结果会被缓存,下次直接读缓存里的列信息

原文地址:https://www.cnblogs.com/echonn/p/2722745.html