前邊我們學過save() saveAll()來保存數據,此方法也可以修改數據
//使用 get()方法通過主鍵獲取數據,然後通過 save()方法保存修改,返回布爾值; $user = UserModel::get(118); $user->username = '李黑'; $user->email = '[email protected]'; $user->save();
//通過 where()方法結合 find()方法的查詢條件獲取的數據,進行修改; $user = UserModel::where('username', '李黑')->find(); $user->username = '李白'; $user->email = '[email protected]'; $user->save();
save()方法只會更新變化的數據,如果提交的修改數據沒有變化,則不更新;
但如果你想強制更新數據,即使數據一樣,那麼可以使用 force()方法;
$user->force()->save();
使用save方法的第二個參數實現過濾更新
public function show(){ //實例化模型User $user=new User(); //save 方法兩個數組,第一個數組爲 要新增或要修改的數據,第二個數組爲where條件 成功返回true 否則 flse return json($user->save(['bname'=>'du偉'],['bid'=>1])); }
使用靜態方法結合 update()方法來更新數據,這裏返回的是影響行數;
public function show(){ //實例化模型User $user=new User(); //更新bid 爲1 的bname=duwei 返回更新的條目 return json($user::where('bid',1)->update(['bname'=>'duwei'])); }
數據查詢
模型類
<?php namespace app\model; use think\Db; use think\Model; class User extends Model{ //繼承model基類後,會有delete 和靜態destroy其他的一些方法可以調用 //指定主鍵 public $pk='bid'; }
控制器
public function show(){ //通過靜態get方法獲取模型類主鍵的信息 $user=User::get(1); return json($user); }
使用where過濾查詢,
public function show(){ //通過靜態get方法獲取模型類主鍵的信息 $user=new User(); //使用where過濾查詢 return json($user::where('bid',1)->find()); }