Laravel5.1 修改器的疑惑
问下model的修改器触发的前提是什么?我发现如果提交的表单里没有这个字段不会触发修改器,还有新增数据时会触发,修改数据时就不会触发了,怎么让修改数据时也触发修改器呢?
model里定义了修改器
/**
* 将提交的权限数组转为字符串
* @param $value
* @return string
*/
public function setPermissionsAttribute($value){
$this->attributes['permissions'] = implode(',', $value);
}
添加、更新操作如下:
/**
* 添加模型
* @param array $data
* @return mixed
*/
public function create(array $data)
{
$result = $this->model->create($data);
return $result ?
Common::returnCode(Code::createSuccess, ['url'=>$this->returnUrl]) :
Common::returnCode(Code::createFailed);
}
/**
* 更新模型
* @param array $data
* @param $item
* @param string $attribute
* @return mixed
*/
public function update(array $data, $item, $attribute = 'id')
{
$result = $this->model->where($attribute, $item)->update($data);
return $result ?
Common::returnCode(Code::updateSuccess, ['url'=>$this->returnUrl]) :
Common::returnCode(Code::updateFailed);
}
现在是create方法会触发修改器,而update方法不会触发修改器,这是什么问题?
推荐文章: