TP 5.x 提供了豐富的數(shù)據(jù)模型和數(shù)據(jù)庫操作的方法。 新添加了數(shù)據(jù)模型的實(shí)用的功能:軟刪除。
就是指定一個字段,用$deleteTime
來記錄,默認(rèn)不指定是delete_time。這個字段使用 NULL 來判斷 record 有沒有被標(biāo)記。
如果在標(biāo)記為軟刪除下情況下,要恢復(fù)標(biāo)記為刪除的 record 就不能不能直接賦值NULL 給update
save
,因為如果你直接賦值 (PHP)NULL,這個值就會被認(rèn)為無效而被忽略, 不會對數(shù)據(jù)庫的這個字段進(jìn)行操作。
我記得上次,這個問題,我fuck了半天作者,現(xiàn)在.....
原始可靠性
解決的方式就是使用php 操作mysql的原始方法
...
$sql = 'update table '. $table_full_name ." set $deleteTime = NULL where id = $id";
$query = $this->handler->prepare($sql);
$rst = $query->execute()
....
exp操作
where方法中提供了操作為exp的形式。即
$query->where('delete_time', ['exp','null'])
但是save是沒有提供的,save的參數(shù)是
$query->save([data],[conditional]);
其中的data賦值null,表示沒有賦值,而不是把NULL寫入數(shù)據(jù)庫。