<?php
namespace app\index\controller;
use think\Controller;
use app\index\model\Staff as StaffModel; //设置模型别名
//用法模型来查询数据;
class Staff extends Controller
{
// $staff = new StaffModel();
public function instance(StaffModel $staff)
{
//因为方法里面不建议new对象;所以用依赖注入;
// $staff = new StaffModel();
var_dump($staff->getName());
$staff -> qq = '悟空';
$staff->password = 101010;
$staff->avatar = 'www.php.edu.cn';
$staff->save();
return '添加成功,id='.$staff->id;
}
//查询;
public function query(){
// 闭包就是一个匿名回调函数,将函数作为参数进行传递;
// get:获取满足条件的第一条信息;
/*
$staff = StaffModel::get(1);
dump($staff);
// var_dump($staff);
echo $staff->qq;
echo '<br>';
//闭包来创造条件;
$like = StaffModel::get(function($query){
$query->where('id','>',1);
});
dump($like);
echo '<br>';
// 静态调用Db类的查询构造器:where是框架里的静态方法
$like = StaffModel::where('id=1')->find();
dump($like);
echo '<br>';
*/
// all查询多条数据;
// $staff = StaffModel::all();
// // dump($staff);
// foreach($staff as $val){
// echo $val.'<br>';
// }
//采用闭包实现将请求变量注入闭包的条件中;
// $this->request : //请求对象;
// $this->request == namespace think\facade\Request
// param() :参数
$id = $this->request->param('id') ?:2;
$staff = StaffModel::all(function($query) use ($id){
$query->where('id','>',$id);
});
//在url上输入id/3页可以查询到数据;
dump($staff);
}
//修改;
public function update()
{ //用静态属性get获取数据;类名::方法/属性;
// $staff = StaffModel::get(3);
// $staff->qq = '雷恩';
// $staff->save();
// dump($staff);
// $staff = StaffModel::update(['q'=>'羊来'],['id'=>3]);
// return $staff ?'修改成功'.$staff:'修改失败';
//所谓复杂的更新方法;
// StaffModel::update(
// //用这样的方式引用了类;
// ['password'=> \think\Db::raw('password+1')],
// function($query){
// $query->where('id=10');
// }
// );
//查询构造器方式;
//StaffModel::where('id=9') //条件
//->data(['password'=> \think\Db::raw('password+1')]) //对象;
//->update();//结果;
}
//更新
public function create(){
//create('数据','字段')
$data = [
'qq'=>'唐僧',
'password'=>101230,
'avatar'=>'static\image\1.jpg'
];
$field = ['qq','password','avatar'];
// StaffModel::create($data,$field);
//查询构造器方式更新;
StaffModel::insert($data);
}
//删除;
// public function destroy(){
// // destory是框架静态属性:
// // StaffModel::destroy(12);
// // StaffModel::destroy([12,13,15]);
// // 闭包删除
// StaffModel::destroy(function($query){
// $query->where();
// });
// //查询构造器方式删除;
// StaffModel::where()->destroy();
// }
// 软删除必须在模型中进行设置;
public function softDelete(){
// StaffModel::destroy(1); //软删除id=1的数据;
//软删除的数据在普通查询中不可见;
//$res = StaffModel::where('id < 4')->select();
//查询包括软删除的数据;
// $res = StaffModel::withTrashed()->where('id < 4')->select();
//查询软删除的数据;
//$res = StaffModel::onlyTrashed()->select();
//恢复软删除记录;
$staff = new StaffModel; //这行最好用依赖注入
$res = $staff->restore('id=1');
dump($res);
}
}<?php
//软删除步骤:
// 1.在表中添加一个字段:删除时间:delete_time
// 2.在模型中添加一个属性:$deleteTime = 'delete_time';
// 3.在模型中导入软删除的trait类库,:SoftDelete;
//4.最新版支持设置软删除的默认字段值;
namespace app\index\model;
use think\Model;
use think\model\concern\SoftDelete; //trait方法集;
class Staff extends Model
{
use SoftDelete; //将SoftDelete类中所有的代码复制到当前类中;
//设置数据表名称;
protected $table = 'admin';
// protected $pk = 'id';
//设置软删除时间的默认值;
protected $defaultSoftDelete = 0;
//设置删除时间的字段名;
protected $deleteTime = 'delete_time';
// public function x(){
// //这里引用了db类;
// $table = \think\Db::table('admin')->select();
// return $table;
// }
}$table = \think\Db::table('admin')->select(); 仅使用一次的类引入;
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号