THINKPHP5之模型命名

2018-08-09  本文已影响0人  叶不归宿
官方文档:

模型会自动对应数据表,模型类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写,例如:

模型名              约定对应数据表(假设数据库的前缀定义是 think_)
User                 think_user
UserType         think_user_type
如果你的规则和上面的系统约定不符合,那么需要设置Model类的数据表名称属性,以确保能够找到对应的数据表

// 设置当前模型对应的完整数据表名称
    protected $table = 'think_user';

若不想设置完整的数据表名
protected $table = 'user';
则需要在thinkphp/library/think/Model.php 文件进行修改
修改前:

// 设置当前数据表和模型名
if (!empty($this->table)) {
      $query->setTable($this->table);
} else {
      $query->name($this->name);
}

修改后:

// 设置当前数据表和模型名
$config = Config::get('database');

if (!empty($this->table)) {
      $query->setTable($config['prefix'].$this->table);
} else {
      $query->name($this->name);
}

需要确保database.php中配置了数据库表前缀‘prefix’


关联

关联方法的命名规范是驼峰法,而关联属性则一般是小写+下划线的方式,系统在获取的时候会自动转换对应,读取user_profile关联属性则对应的关联方法应该是userProfile。

上一篇下一篇

猜你喜欢

热点阅读