1. 程式人生 > 其它 >thinkphp6資料庫操作方法返回值記錄

thinkphp6資料庫操作方法返回值記錄

save

返回

save方法成功返回true
並且只有當before_insert事件返回false的時候返回false,一旦有錯誤就會丟擲異常。所以無需判斷返回型別。

過濾欄位

save()前使用allowField()方法

$user = new User;
// post陣列中只有name和email欄位會寫入
$user->allowField(['name','email'])->save($_POST);

建議在引數接收的時候就用Request請求物件直接過濾

$user = new User;
// 過濾post陣列中的非資料表字段資料
$data = Request::only(['name','email']);
$user->save($data);

replace寫入

save()前使用replace()方法

$user           = new User;
$user->name     = 'thinkphp';
$user->email    = '[email protected]';
$user->replace()->save();

saveAll

批量新增,如果資料中存在主鍵的時候會認為是更新操作

$user = new User;
$list = [
    ['name'=>'thinkphp','email'=>'[email protected]'],
    ['name'=>'onethink','email'=>'[email protected]']
];
$user->saveAll($list);

返回

saveAll方法新增資料返回的是包含新增模型(帶自增ID)的資料集物件。

create

返回

和save方法不同的是,create方法返回的是當前模型的物件例項

過濾欄位

過濾欄位,給create傳遞第二個引數

$user = User::create([
    'name'  =>  'thinkphp',
    'email' =>  '[email protected]'
], ['name', 'email']);

replace寫入

create方法傳遞第三個引數

$user = User::create([
    'name'  =>  'thinkphp',
    'email' =>  '[email protected]'
], ['name','email'], true);