一、建立用户数据表
二、创建模型类与控制器
模型User.php:
控制器User.php
三、代码实例:
app/moder/User.php
<?php
namespace app\model;
use think\Model;
use think\model\concern\SoftDelete;
class User extends Model
{
//设置数据库的名称
protected $table = 'user';
//设置默认主键
protected $pk = 'id';
//软删除:1.复制SoftDelete类到当前模型;2.添加软删除deleteTime属性; 3.设置软删除默认字段值
use SoftDelete;
protected $delete_time = 'delete_time';
protected $defaultSoftDelete = 0;
}
app/admin/controller/User.php
<?php
namespace app\admin\controller;
use think\Controller; //导入基类
use app\model\User as UserModel; //导入模型类
use think\Db;
class User extends Controller
{
//实例化模型,依赖注入
public function instance(UserModel $user)
{
// dump($user->getName()); //查看模型名称是否正确
$user->name = '湖锦涛';
$user->password = md5(12345);
$user->nickname = '湖起波涛';
$user->email = '13141223@qq.com';
$user->save();
return '添加数据成功!id='.$user->id;
}
//模型查询
public function query()
{
//用闭包查询单条数据
$res = UserModel::get(function($query){
$query->where('id','=',5);
});
echo '查询单条数据:<br>';
dump($res);
echo '<hr>';
//用构造器查询单条数据
$res1 = UserModel::where('id','=',5)->find();
echo '用构造器查询单条数据:<br>';
dump($res1);
echo '<hr>';
//用闭包,查询多条数据
$res = UserModel::all(function($query){
$query->where('id','>',5)->limit(3);
});
echo '查询多条数据:<br>';
dump($res);
echo '<hr>';
//用构造器,查询多条数据
$res1 = UserModel::where('id','>',5)
->limit(3)
->select();
echo '用构造器查询多条数据:<br>';
dump($res1);
echo '<hr>';
}
//模型更新
public function update()
{
//用闭包(数据,条件),更新数据
UserModel::update(
['nickname'=>'春哥'],
function($query){
$query->where('id','=',4);
}
);
return '用闭包,更新数据成功!<hr>';
//用构造器,更新数据
$data = [
'nickname'=>'信春哥就对了',
'uid'=> Db::raw('uid+1')
];
UserModel::where('id','=',4)
->data($data)
->update();
echo "string"; '用构造器,更新数据成功!';
}
//模型新增
public function create()
{
//1. 用create(数据,字段)添加数据
$data = [
'name' => '马朝旭',
'password' => md5(12345),
'nickname' => '骏马奔腾',
'email' => '71134423@qq.com'
];
$field = ['name','password','nickname','email'];
UserModel::create($data,$field);
return '用create(数据,字段),添加数据成!<hr>';
//2. 用构造器添加数据
$data1 = [
'name' => '梁咏琪',
'password' => md5(12345),
'nickname' => '粱中宝玉',
'email' => '1322423@qq.com'
];
UserModel::insert($data1);
}
//模型删除
public function delete()
{
//用闭包,软删除数据
UserModel::destroy(function($query){
$query->where('id','>',0)->where('id','<',5);
});
//用构造器,软删除数据
UserModel::where('id','=',5)->delete();
//查询被软删除的数据
$res = UserModel::withTrashed()->select();
$res = UserModel::onlyTrashed()->select();
$res = UserModel::all();
dump($res);
//恢复单条,被软删除的数据
$res = UserModel::onlyTrashed()->find(2);
$res->restore();
// 恢复多条,被软删除的数据
$res = UserModel::update(
['delete_time'=>0],
function($query){
$query->where('id','>',0);
}
);
$res = UserModel::all();
dump($res);
}
}
以上代码均经过测试,代码可用