我尝试在保存之前删除属性上的非数字字符,但不保存新值。
我的模型看起来像这样:
class Model extends \Eloquent {
public function setColumnAttribute($value) {
$value = (int)preg_replace('/[^0-9]/', '', $value);
return $value;
}
}
如果我在其中添加dd($value)
,那么该方法会运行转储。
我用这个更新模型:
Model::find($id)->update($attributes);
为什么不保存setColumnAttribute
方法给出的值?我错过了什么?
答案 0 :(得分:0)
通过搜索eloquent mutator
我发现你必须将其插入$this->attributes
数组而不是返回值。
class Model extends \Eloquent {
public function setColumnAttribute($value) {
$value = (int)preg_replace('/[^0-9]/', '', $value);
$this->attributes['column'] = $value;
}
}