-
tp里面更新数据的两种方式
1.
$model::where(array('字段'=>'值'))->update(array($change));
或者如图所示;
查看全部 -
use think\Db;
$db = Db::name('table');
$db->insert($data); //返回值是影响记录的行数 插入数
$db->insertGetId($data); //返回插入数的自增id
$db->insertAll($data); //返回插入的成功行数
查看全部 -
软删除:
首先在模型里面引用SoftDelete
<?php
namespace app\index\model;
use think\Model;
use traits\model\SoftDelete;
class User extends Model{
use SoftDelete;
#删除数据的时候删除时间戳默认写入字段delete_time中,当要自定义时:
// protected $deleteTime = '自定义删除时间字段名';
}
然后在控制器里面执行操作:
public function index(){
// $res = User::destroy(4);//被软删除
// $res = User::get(4);//返回NULL
#查询包含已删除的数据
//$res = User::withTrashed(true)->find(2);
#查询仅包含已删除的数据
$res = User::onlyTrashed()->select();
foreach ($res as $val){
dump($val);
}
#若要恢复被软删除的数据,直接用update方式将delete_time的值设置为NULL即可
#当开启软删除后要想真正彻底删除数据,在destroy的第二个参数后面传入一个true值
$res = User::destroy(1,true);
#通过get方式进行软删除/删除
$res = User::get(3);//如果此处数据已经被软删除则获取到的为NULL,后面的操作无效
$user->delete();//软删除
$res = $user->delete(true);//删除
}
查看全部 -
全局添加更新时间需要在表中新建create_time和update_time字段,配置文件中设置“auto_timestamp"=>true,一般不开启这个功能,否则表中不存在该字段时会报错,真正删除需要把destroy方法或delete方法的第二个参数设置为true
123456789 usethink\Model;usetraits\model\SoftDelete;classUserextendsModel{useSoftDelete;使用软删除protected$autoWriteTimestamp= true;//开启自动更新时间protected$createTime= false;//设置为false代表不使用创建时间protected$updateTime="update_at";//设置自定义更新时间的字段protected$deleteTime="delete_at";//设置自定义的软删除字段}查看全部 -
auto (新增及更新的时候自动完成的属性数组)
insert(仅新增的时候自动完成的属性数组)
update(仅更新的时候自动完成的属性数组)
查看全部 -
<?phpnamespaceapp\index\model;usethink\Model;classUserextendsModel{protected$auto= ['time'];protected$insert= ['time_insert'];protected$update= ['time_update'];publicfunctionsetPasswordAttr($val,$data){//第二个参数是数组数据return$val.$data['email'];returnmd5($val);}publicfunctionsetTimeAttr(){returntime();}publicfunctionsetTimeInsertAttr(){returntime();}publicfunctionsetTimeUpdateAttr(){returntime();}}查看全部 -
<?phpnamespaceapp\index\model;usethink\Model;classUserextendsModel{publicfunctiongetSexAttr($val){switch($val){case'1':return"男";break;case'2':return"女";break;default:return"未知";break;}}}查看全部 -
模型获取器 成员方法(get字段名Attr)[字段名首字母大写] 在model中使用 在controller中use下model中的类(该类需继承model类),利用 类名::get() 进行获取数据值 可利用toArray获取改后数据 可利用getData获取改前数据
查看全部 -
count User::count(); max User::max('字段名') sum User::sum('字段名') avg User::avg('字段名') min User::min('字段名') 都可以和where条件合作
查看全部 -
destroy对数据库删除的操作 $userModel = User::get(7); $res = $userModel->delete();//对数据库删除的操作 $res = User::where("1=1") -> delete();//1=1 清空数据库
查看全部 -
<?phpnamespaceapp\index\controller;usethink\Controller;useapp\index\model\User;classIndexextendsController{publicfunctionindex(){#destroy返回影响行数// $res = User::destroy(function ($query){// $query->where('id','<',5)// ->whereOr('id','>',10) ;// });// dump($res);#get返回影响行数// $userModel = User::get(7);// $res = $userModel->delete();// dump($res);#delete,返回影响行数$res= User::where('id',10)->delete();dump($res);}}查看全部 -
<?phpnamespaceapp\index\controller;usethink\Controller;useapp\index\model\User;classIndexextendsController{publicfunctionindex(){#当数据中存在自增id时,数据更新方式,返回修改的内容,无法验证是否更改// $res = User::update([// 'id' => 1,// 'username' => 'wenco_update'// ]);// dump($res->toArray());#当数据中不存在自增id时如下,第二个参数即为where,可以为闭包函数,返回修改内容// $res = User::update([// 'username' => 'wenco_update'// 当第二个参数为数组 ],['id' => '2']);//当第二个参数为闭包函数 ],function ($query){// $query->where('id','>=', 15);// });#where 返回被影响行数,推荐使用!// $res = User::where('id','between',[1,5])->update([// 'username' => 'wenco_old'// ]);// dump($res);#User::get,返回被影响行数// $userModel = User::get(1);// $userModel->username = '123';// $userModel->email = '123@qq.com';// $res = $userModel->save();// dump($res);#newUser,返回影响行数,第二个参数可以为闭包函数// $userModel = new User;// $res = $userModel->save([// 'username' => 555// ],['id' => 18]);// dump($res);#saveAll,返回结果集,不推荐使用$userModel=newUser;$res=$userModel->saveAll([['id'=> 1,'username'=>'wencocococ'],['id'=> 2,'username'=>'wencocococ']]);dump($res);}}查看全部 -
// $res = User::create([ // 'username' => 'imooc', // 'password' => md5('imooc'), // 'email' => 'imooc@qq.com', // 'num' => 100, // 'demo' => 123 // ], ['username', 'email']); // $userModel = new User; // $userModel->username = '17771258'; // $userModel->email = '17771258@qq.com'; // $userModel->password = md5('17771258'); // $userModel->save(); // $userModel = new User; // $res = $userModel // ->allowField('username') // ->save([ // 'username' => 'imooc1', // 'password' => md5('imooc1'), // 'demo' => 123 // ]); $userModel = new User; $res = $userModel->saveAll([ ['email'=> '17771258@qq.com'], ['email'=> '17771259@qq.com'] ]); foreach($res as $val) { dump($val->toArray()); } //dump($res); //dump($res);
查看全部 -
Model->get 返回对象 用toarray 获取信息
查看全部 -
使用模型查询数据;#通过get方式获取数据,括号内可以为主键,也可以为闭包函数
// $res = User::get(function($query){
// $query->where("username","eq","wenco_3")
// ->field("email");
// });
// $res = User::where("id","<=",15)
// ->field("id,username")
// ->limit(19)
// ->order("id" ,"DESC")
// ->select();
查看全部
举报