tp5.0 mysql_定义 · ThinkPHP5.0完全开发手册 · 看云

|版本|调整功能|

|---|---|

|5.0.5|`model`或者`Loader::model`方法支持传入完整的模型类名|

## 模型定义

定义一个User模型类:

~~~

namespace app\index\model;

use think\Model;

class User extends Model

{

}

~~~

默认主键为自动识别,如果需要指定,可以设置属性:

~~~

namespace app\index\model;

use think\Model;

class User extends Model

{

protected $pk = 'uid';

}

~~~

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

| 模型名 | 约定对应数据表(假设数据库的前缀定义是 think_) |

|-----|-----|

| User | think_user |

| UserType | think_user_type |

如果你的规则和上面的系统约定不符合,那么需要设置Model类的数据表名称属性,以确保能够找到对应的数据表。

## 设置数据表

如果你想指定数据表甚至数据库连接的话,可以使用:

~~~

namespace app\index\model;

class User extends \think\Model

{

// 设置当前模型对应的完整数据表名称

protected $table = 'think_user';

// 设置当前模型的数据库连接

protected $connection = [

// 数据库类型

'type' => 'mysql',

// 服务器地址

'hostname' => '127.0.0.1',

// 数据库名

'database' => 'thinkphp',

// 数据库用户名

'username' => 'root',

// 数据库密码

'password' => '',

// 数据库编码默认采用utf8

'charset' => 'utf8',

// 数据库表前缀

'prefix' => 'think_',

// 数据库调试模式

'debug' => false,

];

}

~~~

和连接数据库的参数一样,`connection`属性的值也可以设置为数据库的配置参数,而且也是官方推荐的方式,这样可以避免把数据库连接固化在代码里面。

> 5.0不支持单独设置当前模型的数据表前缀。

## 模型调用

模型类可以使用静态调用或者实例化调用两种方式,例如:

~~~

// 静态调用

$user = User::get(1);

$user->name = 'thinkphp';

$user->save();

// 实例化模型

$user = new User;

$user->name= 'thinkphp';

$user->save();

// 使用 Loader 类实例化(单例)

$user = Loader::model('User');

// 或者使用助手函数`model`

$user = model('User');

$user->name= 'thinkphp';

$user->save();

~~~

>[info]实例化模型类主要用于调用模型的自定义方法,更多用法参考后面的章节内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值