tp5-模型层CURD1

CURD的三种写法


1.第一种:Db类

2.第二种:Model动态

3.第三种:Model静态

在写项目时,常用写法:

  • 创建和更新使用Model动态方法save()
  • 查一条和多条使用Model静态方法get(),all()
  • 删除使用Model静态方法destroy()

模型类与Db类的区别:

模型类具有修改器,获取器,自动完成,类型转换等高级操作,而Db类没有;


异常Exception

use thinkException;

获取异常try{}catch(thinkException $e){//catch可以写多次}

常用的属性:

$this->error=$e->getMessage();

//调用模型类的一个属性error,并将抛出的异常信息,赋值到error属性中

getLastInsID()

//作用是获取最后一次添加记录的主键(id)

allowField(true)类似链式操作的一种写法

//作用是在进行增加方法时,在用户提交的信息中将与数据库字段吻合的数据添加

在异常中使用三种方法新增

//测试是在控制器中,普通写法应该是在Model;
try{
    $data=[
        'name'=>'admin',
        'pwd'=>md5(123),
        'email'=>'110901678@qq.com'
    ]
    //1.使用Db类新增
    $rt=Db::table('表名')->field(true)->insert($data);
    echo Db::getLastInsID();
    //2.使用模型静态-不推荐
    $rt=\app\index\model\Users::create($data);
    //3.使用模型动态-推荐
    $rt->allowField(true)->save($data);
    
}catch(\think\Exception $e){
    echo $e->getMessage();
}



拓展:static与self在实例化的区别

面向对象中new static 与new self区别:

1.写在类的本身时没有区别

2.写在类的继承时(例如下栗子)

当红框中是self时,最后echo 的是'Text'.

当红框中是static时,最后echo 的是'Zx'.

ThinkPHP

我来吐槽

*

*