TP 5.x 提供了豐富的數(shù)據(jù)模型和數(shù)據(jù)庫(kù)操作的方法玩祟。 新添加了數(shù)據(jù)模型的實(shí)用的功能:軟刪除港准。
就是指定一個(gè)字段,用$deleteTime
來(lái)記錄抄瑟,默認(rèn)不指定是delete_time凡泣。這個(gè)字段使用 NULL 來(lái)判斷 record 有沒(méi)有被標(biāo)記。
如果在標(biāo)記為軟刪除下情況下皮假,要恢復(fù)標(biāo)記為刪除的 record 就不能不能直接賦值NULL 給update
save
问麸,因?yàn)槿绻阒苯淤x值 (PHP)NULL,這個(gè)值就會(huì)被認(rèn)為無(wú)效而被忽略钞翔, 不會(huì)對(duì)數(shù)據(jù)庫(kù)的這個(gè)字段進(jìn)行操作严卖。
我記得上次,這個(gè)問(wè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是沒(méi)有提供的汰扭,save的參數(shù)是
$query->save([data],[conditional]);
其中的data賦值null稠肘,表示沒(méi)有賦值,而不是把NULL寫(xiě)入數(shù)據(jù)庫(kù)萝毛。