ThinkPHP6项目基操(7.模型)

一、模型的定义及基本使用

与Db操作数据库相比,使用模型Model类更方便。
controller文件夹同级目录新建文件夹model,再新建Model类,文件名与数据库的数据表名对应,如数据表为demo,那么模型类取名为Demo.php

<?php
namespace app\model;
use think\Model;

class Demo extends Model
{

}

在控制器中使用模型类:

public function model1(){
    $result = Demo::find(2);
    dump($result);
}

浏览器输出:
在这里插入图片描述
这是输出的模型对象,如果要直接输出data数据,可以使用toArray方法:

dump($result->toArray());

浏览器输出:
在这里插入图片描述

二、模型查询及其他使用

1. new 模型对象

除了上面的直接使用静态方法,也可以先new一个对象再来操作,返回的也是模型对象或模型对象集合,也可以使用toArray方法来转换为数组:

public function model2(){
    $model = new Demo();
    $result = $model->where('id','>',2)->select();
    dump($result);
}

2. 模型获取器

模型获取器可以修改字段的值,也可以定义数据表不存在的字段,方法名称定义规则为get[字段大驼峰名]Attr,如getStatusTextAttr,数据库中有status字段,model类修改为:

<?php

namespace app\model;
use think\Model;

class Demo extends Model
{
    public function getStatusTextAttr($value, $data){
        $status = [
            0 => '待审核',
            1 => '正常',
            99 => '删除'
        ];
        return $status[$data['status']];
    }
}

控制器调用,大驼峰命名改为下划线小写方式:

public function model2(){
    $model = new Demo();
    $result = $model->find(2);
    dump($result->status_text); // "待审核"
    dump($result->toArray());
}

但是直接转换为数组,还是不会有status_text字段:
在这里插入图片描述
如果要获取包含获取器处理的数据表中不存在的数据属性,可以使用append方法添加,数据表已存在的字段可以不用处理,会自动返回:

dump($result->append(['StatusText'])->toArray());

append的属性可以是大驼峰命名,也可以是下划线小写方式:

dump($result->append(['status_text'])->toArray());

结果:
在这里插入图片描述


⭐️重磅推荐:免费商用电商系统

😏想白嫖整个电商系统用来商用?
🤑想有自己的商城实现财富自由?
🤓想学习最佳实践提升自己技术?

快来进入🚀 传送门 🚀,开源免费、完整示例带你快速入门,轻松二开,走上人生巅峰!👨‍🎓
在这里插入图片描述

  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

优小U

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值