和获取器相反,那边是 get,这边就是 set。获取器获取数据的时候触发,修改器就是设置数据的时候触发
修改器方法的命名规范为:
setFieldNameAttr
定义了修改器之后会在下列情况下触发:
- 模型对象赋值;
- 调用模型的data方法,并且第二个参数传入true;
- 调用模型的save方法,并且传入数据;
- 显式调用模型的setAttr方法;
- 定义了该字段的自动完成;
1. 设置时:触发字段的装换
model 层 设置:
<?php
// 修改器
public function setNameAttr($value)
{
return strtolower($value);
}
service 层的方法:
<?php
// 新增一个用户 save
public 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 测试结果:
查看数据表: