例如一个密码字段, 需要md5加密, 这时候, 可以用修改器, 来实现.
//修改器
public function setPasswordAttr($val)
{
return md5($val);
}
这是的 set 和 Attr 是固定的, 中间的 Password 是字段名, 第一个字母大写.
如果还有第二个参数, 则是整个数据, 如下, 是这个数组的数据.
$res = User::create([
'username' => 'imooc',
'sex' => 0,
'email' => '[email protected]',
'password' => 'imooc',
'num' => 1
], true);
接下来演示一下, 接受第二个参数的情况
//修改器
public function setPasswordAttr($val, $data)
{
return $val . $data['email'];
//return md5($val);
}
自动完成. 有些字段, 例如时间字段, 希望我们在处理的数据的时候,可以自动完成.可以用如下方法
$auto 是在新增和更新的时候,都会触发, $insert 是在新增的时候会触发. $update是在更新的时候触发.
//自动完成
protected $auto = [
'time'
];
// 自动完成, 只在新增的时候有效
protected $insert = [
'time_insert'
];
// 自动完成, 只在更新的时候有效
protected $update = [
'time_update'
];
public function setTimeAttr()
{
return time();
}
public function setTimeInsertAttr()
{
return time();
}
public function setTimeUpdateAttr()
{
return time();
}