和获取器相反,那边是 get,这边就是 set。获取器获取数据的时候触发,修改器就是设置数据的时候触发
修改器方法的命名规范为:
setFieldNameAttr
定义了修改器之后会在下列情况下触发:
- 模型对象赋值;
- 调用模型的data方法,并且第二个参数传入true;
- 调用模型的save方法,并且传入数据;
- 显式调用模型的setAttr方法;
- 定义了该字段的自动完成;
1. 设置时:触发字段的装换
model 层 设置:
<?php// 修改器public function setNameAttr($value){return strtolower($value);}
service 层的方法:
<?php// 新增一个用户 savepublic function addOneUser($user){$model = new userModel();return ($model->save($user)) ? '增加成功' : '增加失败';}
controller 层调用service层:
<?php// 添加一名用户的信息public function fun2(UserService $service){$user = ['name' => 'HELLO WORLD','gender' => 1,'age:' => 24,'email' => 'wangwu@gmail.com'];return $service->addOneUser($user);}
postman 测试结果:
查看数据表:
