使用thinkphp5.0框架開發個人網站漫島時,在模型中進行數據庫的寫入時發現修改器並沒有起到任何作用,閱讀官方文檔也沒找到對應說明,最後在評論區找到解決方案,因此記錄:
開始我在模型存儲數據時使用的如下方式:
public function saveTag()
{
$a = new Tag;
$a->data(["label"=>["標籤1","標籤2","標籤3"]]);
$a->save();
}
//將標籤數組分割爲字符串存儲
protected function setLabelAttr($label)
{
return implode(',', $label);
}
結果並沒有觸發修改器,存儲進表裏的數據是原始的數組。
解決方案如下:
$a = new Tag;
//給data方法傳入第二個參數,true
$a->data(["label"=>["標籤1","標籤2","標籤3"]],true);
$a->save();
就一個參數,問題就被解決了~~
特別說明:針對的是模型中使用data方法時喔!
每天都能學習到新知識的感覺真好啊,就是沒工資哈哈哈哈!