【TP5.0】model的操作方法
阿新 • • 發佈:2018-07-25
新增 src ted lse 圖片 希望 ace 復制代碼 推薦
//默認主鍵為自動識別,如果需要指定,可以設置屬性: namespace app\index\model; use think\Model; class User extends Model { protected $pk = ‘uid‘; // 設置當前模型對應的完整數據表名稱 protected $table = ‘think_user‘; }
使用助手函數model()快速實例化模型(推薦)
public function save(){ $user = model(‘User‘); // 使用model 即可快速實例化模型,不必使用 $user = new User(); $list = [ [‘name‘=>‘thinkphp‘,‘email‘=>‘[email protected]‘] ]; $user->saveAll($list); }
save()方法添加單條數據
//使用data方法批量添加數據: namespace app\index\controller; use think\Controller; use think\Request; use app\index\model\User as UserModel;
public function save(){ $user = new UserModel; $user->data([ ‘name‘ => ‘thinkphp‘, ‘email‘ => ‘[email protected]‘ ]); $count = $user->save();
dump($count) // save方法新增數據返回的是寫入的記錄數
}
// 使用allowField過濾非數據表字段 public function save(Request $request){ $user = new UserModel(); // $_POST過來的數據中包含數據表中沒有的字段 $user->data($request->param()); // 或者$_POST // 只會保存數據表中有的字段 $user->allowField(true)->save(); }
// 希望某些指定字段寫入 public function save(Request $request){ $user = new UserModel(); $user->data($request->param()); // 只寫入name字段和email字段的值 $count = $user->allowField([‘name‘,‘email‘])->save(); dump($count);die; }
// 獲取自增id public function save(Request $request){ $user = new UserModel(); $user->data($request->param()); $user->allowField(true)->save(); echo $user -> id; // 輸出當前插入數據的主鍵 }
//如果同一個實例裏面多次新增數據,必須使用isUpdate(false) public function save(Request $request){ $user = new UserModel(); $user->data($request->param()); $user->allowField([‘name‘])->save(); // 插入第一條數據 $user->name=‘thinkphp‘; $user->email=‘[email protected]‘; $user->allowField([‘email‘])->isUpdate(false)->save(); // 再次插入一條數據 }
saveAll()方法添加多條數據
// saveAll()同時添加多條數據 public function save(Request $request){ $user = new UserModel(); $list = [ [‘name‘=>‘thinkphp‘,‘email‘=>‘[email protected]‘], [‘name‘=>‘chrdai‘,‘email‘=>‘[email protected]‘] ]; $user->saveAll($list); }
// saveAll()方法中若數據中帶有主鍵,則為更新操作,若不帶主鍵則為插入操作 public function save(Request $request){ $user = new UserModel(); $list = [ // 此處的兩條數據將執行更新操作 [‘id‘=>1,‘name‘=>‘thinkphp_update‘,‘email‘=>‘[email protected]‘], [‘id‘=>2,‘name‘=>‘chrdai_update‘,‘email‘=>‘[email protected]‘] ]; $user->saveAll($list); }
靜態調用create方法創建並寫入
// 使用create方法可以直接將數據插入到數據庫 public function save(Request $request){ $user = UserModel::create([ ‘name‘=>‘thinkphp‘, // 此處的字段必須是數據表中存在的 ‘email‘=>‘[email protected]‘ ]); echo $user->id; // 獲取當前插入數據的id }
【TP5.0】model的操作方法