使用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方法时喔!
每天都能学习到新知识的感觉真好啊,就是没工资哈哈哈哈!