ThinkPHP5.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();

二、模型初始化

1、模型同样支持初始化,与控制器的初始化不同的是,模型的初始化是重写Modelinitialize,具体如下

namespace app\index\model;

use think\Model;

class Index extends Model
{

    //自定义初始化
    protected function initialize()
    {
        //需要调用`Model`的`initialize`方法
        parent::initialize();
        //TODO:自定义的初始化
    }
}

2、同样也可以使用静态init方法,需要注意的是init只在第一次实例化的时候执行,并且方法内需要注意静态调用的规范,具体如下

namespace app\index\model;

use think\Model;

class Index extends Model
{

    //自定义初始化
    protected static function init()
    {
        //TODO:自定义的初始化
    }
}
时间: 2024-08-28 21:25:36

ThinkPHP5.0 模型调用的相关文章

ThinkPHP5.0 模型查询操作

1.获取单个数据 //取出主键为1的数据 $user = User::get(1); echo $user->name; // 使用数组查询 $user = User::get(['name' => 'thinkphp']); // 使用闭包查询 $user = User::get(function($query){ $query->where('name', 'thinkphp'); }); echo $user->name; //实例化模型后调用查询 $user = new U

ThinkPHP5.0 模型删除操作

1.删除模型数据,可以在实例化后调用delete方法 $user = User::get(1); $user->delete(); 2.根据主键删除(5.0.9版本以上destroy方法传入空数组和空字符串不会进行任何删除操作) User::destroy(1); // 支持批量删除多个数据 User::destroy('1,2,3'); // 或者 User::destroy([1,2,3]); 3.条件删除 数组进行条件删除 User::destroy(['status' => 0]);/

ThinkPHP5.0 模型更新操作

1.在取出数据后,更改字段内容后更新数据 $user = User::get(1); $user->name = 'thinkphp'; $user->email = '[email protected]'; $user->save(); 2.直接带更新条件来更新数据 $user = new User; // save方法第二个参数为更新条件 $user->save([ 'name' => 'thinkphp', 'email' => '[email protected

ThinkPHP5.0 模型类事务性操作

 //创建一个模型类     $release=new \app\admin\model\Release(); $release->startTrans();//开启事务 $release->rollback();//事务回滚 $release->commit();//提交事务 ———————————————— <?php //例子如下: public function transAction() { $modelA = model('A'); $modelA->startT

thinkPHP5.0的学习研究【架构】

2017年6月19日18:51:53 架构:1.ThinkPHP5.0应用基于MVC(模型-视图-控制器)的方式来组织.2.MVC是一个设计模式,它强制性的使应用程序的输入.处理和输出分开.使用MVC应用程序被分成三个核心部件:模型(M).视图(V).控制器(C),它们各自处理自己的任务.3.传统的访问方法:http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操作/参数/值-4.入口文件用户请求的PHP文件,负责处理一个请求(注意,不一定是URL请求)的

thinkphp5.0架构总览

ThinkPHP5.0应用基于MVC(模型-视图-控制器)的方式来组织. MVC是一个设计模式,它强制性的使应用程序的输入.处理和输出分开.使用MVC应用程序被分成三个核心部件:模型(M).视图(V).控制器(C),它们各自处理自己的任务. 5.0的URL访问受路由决定,如果关闭路由或者没有匹配路由的情况下,则是基于: http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操作/参数/值... 下面的一些概念有必要做下了解,可能在后面的内容中经常会被提及.

thinkphp5.0和thinkphp3.2的区别不同之处

先看目录结构: thinkphp 5.0的目录结构, 文档:https://www.kancloud.cn/manual/thinkphp5/118008 project 应用部署目录 ├─application 应用目录(可设置) │ ├─common 公共模块目录(可更改) │ ├─index 模块目录(可更改) │ │ ├─config.php 模块配置文件 │ │ ├─common.php 模块函数文件 │ │ ├─controller 控制器目录 │ │ ├─model 模型目录 │

Thinkphp5.0第二篇

查询构造器 //插入记录 $result=Db::table('think_data')->insert(['name'=>'张三','status'=>1]); //修改数据 $result=Db::table('think_data')->where('id', 1)->update(['name'=>"陈国松",'status'=>0]); //查询数据 $result=Db::table('think_data')->select

thinkphp5.0命名空间

命名空间 ThinkPHP采用命名空间方式定义和自动加载类库文件,有效的解决了多模块和Composer类库之间的命名空间冲突问题,并且实现了更加高效的类库自动加载机制. 如果不清楚命名空间的基本概念,可以参考PHP手册:PHP命名空间 特别注意的是,如果你需要调用PHP内置的类库,或者第三方没有使用命名空间的类库,记得在实例化类库的时候加上 \,例如: // 错误的用法 $class = new stdClass(); $xml = new SimpleXmlElement($xmlstr);