把数据库完成同一件事的操作放在公共的方法里,在控制器中直接调用。
namespace app\index\controller;
use think\Controlle;
use app\index\model\User;1、2方法需要
//use think\Loader;3引入此类无需上行调用模型,下面可直接载入
class Index extends Controller
{
public function index()
{
//1下面是静态方法,推荐
$res= User::get(2);
//2下面是实例化方式
//$user= new User;
//$res=$user::get(3);
//3下面是直接载入
//$user= Loader::model("User");
//$res= $use::get(4);
//4下面是利用助手函数,此法上面不用引入任何类
//$user= model("User");
//$res=$user::get(6);
$res=$res->toArray();
dump($res);
}
}
四种方法
public function index() { # 使用 model 的静态方法 /* $res = User::get(1); $res = $res -> toArray(); */ # 实例化方式,使用的也是 model 的静态方法。推荐:因为可以看到每个页面都引用了哪些模型 /* $user = new User; $res = $user::get(3); $res = $res -> toArray(); */ # 使用框架 Loader 的 model 方法 /* $user = Loader::model('User'); // 用 model 方法传递模型名。可以直接引用自己要使用的模型,而不用每个模型都引入 $res = $user::get(3); $res = $res -> toArray(); */ # 助手函数 $user = model('User'); // 直接传入模型名。这种方式可以不引入 Loader 类 $res = $user::get(3); $res = $res -> toArray(); dump($res); }
实例化模型的4种方法:
use app\index\model\User
new User
Loader::model('User') 实例化模型
model("User") 使用助手函数
1.2 2中方法推荐使用;
public function index(){
// $res = User::get(6);
$res= $res->toArray();
dump($res);
}
Model的使用方法
use app\模块\model\模型类名
1、$res = 模型类名::get(1);
2、$user = new 模型类名;
$res = $user::get(1);
3、使用Loader
use think\Loader;
$user = Loader::model('模型类名');
$res = $user::get(1);
4、助手函数
$user = model('模型类名');
$res = $user::get(1);
use app\index\model\User
$user = new User;
或者
use think\Loader
$user = Loader::model("User");
四种调用模型的方法User::get(1) Loader::model("User"); model("User); 使用$res->toArray()函数,抽象对象数组化
当数据表名称为imooc_user_info时,模型文件名为UserInfo.php
Model的文件名 = 类名 = 数据表去掉前缀后的名字如果名字中含有下划线需要去掉在把后一位写成大写
之后就可以通过这个Model类来操作相应的数据表
Model的文件名 = 类名 = 数据表去掉前缀后的名字,
之后就可以通过这个Model类来操作相应的数据表
Model的使用方法
use app\模块\model\模型类名
1、$res = 模型类名::get(1);
2、$user = new 模型类名;
$res = $user::get(1);
3、使用Loader
use think\Loader;
$user = Loader::model('模型类名');
$res = $user::get(1);
4、助手函数
$user = model('模型类名');
$res = $user::get(1);
thinkphp定义model非常方便,只需要在app/index下新建model文件夹,同时以数据表的名称命名.php文件,引入model类,即可定义。
model的命名规范:一般model的名字和表名是对应的,例如
表名为imooc_user->模型名User.php
表名imooc_user_info->模型名UserInfo.php
一般一个表对应一个model类,model类里面是对这个表的增删改查的各种操作
<?php namespace app\index\controller; use think\Controller; use app\index\model\User; use think\Loader; class Index extends Controller{ public function index(){ $res = User::get(2); $user = new User; $res = $user::get(3); $user = Loader::model("User"); $user = model("User"); $res = $user::get(6); $res = $res->toArray(); dump($res); } }
thinkphp定义model非常方便,只需要在app/index下新建model文件夹,同时以数据表的名称命名.php文件,引入model类,即可定义。
Model的使用方法
use app\模块\model\模型类名
1、$res = 模型类名::get(1);
2、$user = new 模型类名;
$res = $user::get(1);
3、使用Loader
use think\Loader;
$user = Loader::model('模型类名');
$res = $user::get(1);
4、助手函数
$user = model('模型类名');
$res = $user::get(1);
model的命名规范:一般model的名字和表名是对应的,例如
表名为imooc_user->模型名User.php
表名imooc_user_info->模型名UserInfo.php
一般一个表对应一个model类,model类里面是对这个表的增删改查的各种操作
虽说在控制器里也可以完成对数据库的各种操作,但是不利于其他控制器重用;
把这些对数据库的重复操作封装到model,可以提高代码的重用性;多个控制器调用同一个model类即可
三种引入模型类的方法
1、 use app\模块\model\模型名 (推荐使用,思路清晰易懂)
2、 use think\Loader (适合同时使用多个模型)
3、使用系统助手函数 model (不推荐使用,避免函数冲突)
首先创建一个Use模型,要继承think下的Model:
<?php namespace app\index\model; use think\Model; class User extends Model{ }
然后在控制器中引用:
<?php namespace app\index\controller; use think\controller; use app\index\model\User; class Index { public function index(){ #new对象 // $user = new User; // $res = $user::get(5); #$user = loader::model():需要use think下的Loader //use think\Loader; // $res = Loader::model("User"); // $res = User::get(2); #助手函数model() // $user = model("User"); // $res = $user::get(4); $res = $res->toArray();//将结果转换成数组 dump($res); } }