二十四、ThinkPHP6_数据库的字段设置

  1. 模型的数据字段和表字段是对应关系,默认会自支动获取,包括字段的类型。但是自动获取会导致增加一次查询,如果在模型中配置字段信息,会减少内存开销。可以在模型设置 $schema 字段,明确定义字段信息,字段需要对应表写完整。
//设置字段信息,需要写完整的数据表字段
protected $schema = [
	'id'		=>	'int',
	'name'		=>	'string',
	'status'	=>	'tyint',
];
  1. 系统提供了一条命令,生成一个字段信息缓存,可以自动生成,在项目目录中,运行命令:php think optimize:schema,我们可以先把这里键值对复制到 $schema 属性上,开启 trace 测试效果;这时在控制器执行查询时,会发现减少一次 SQL 查询;其实不必设置 $chema 属性,因为只对模型有效;如果想模型和数据库 Db 类同时有效,直接运行字段缓存文件即可。默认情况下字段缓存文件是关闭状态,需在 config/database.php 开启
//开启字段缓存
'fields_cache'	=>	true,
  1. 当数据获取到后,想要单独获取数据可以用 -> 和数组方式来获取
$user = UserModel::find(19);
echo $user->name;
echo $user['name'];
  1. 在模型端把数据整理好,交给控制器直接调用
//模型端
public function getUsername($id){
	$obj = $this->find($id);
	return $obj->getAttr('username');
}

//控制器端
$user = new UserModel();
return $user->getUserName(19);
  1. 字段的赋值操作,可以是 -> 或 数组方式,作用就是提交给模型处理
$user = new UserModel();
$user->username = 'Mr.lee';
$user['email']='lee@163.com';
  1. 默认情况下,字段是严格区分大小写的,也就是需要和数据字段保持一致。但是我们可以在模型属性$strict 设置为 flalse 即可实现非严格字段。
//模型中
protected $strict = false;

//控制器
echo $user->createTime; //只能首字母大小写
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值