我使用此函数从表单中获取值并将其保存到数据库:
public function save($request, $distID)
{
try {
$model = Dist::firstOrNew([ 'distID' => $distID ]);
foreach ($request as $key => $value) {
$model->{$key} = $value;
}
$model->save();
} catch (\Exception $e) {
return false;
}
$lastInsertedId = DB::getPdo()->lastInsertId();
$return_value = $lastInsertedId === "0" ? $distID : $lastInsertedId;
return $return_value;
}
其中一个表单输入是密码字段,问题是将该值作为“密码”保存到数据库,而不是md5的编写值。表单是个人资料编辑表单。
所以问题是:如何使用上面的代码将该值保存为md5值?
我发现的解决方案,并考虑尝试:
- 在尝试之前,获取请求密码值并使用md5替换
进行更改- 使用插入查询
最佳解决方案是什么?
答案 0 :(得分:0)
在您的模型中创建一个mutator方法,如下所示:
public function setPasswordAttribute($value)
{
$this->attributes['password'] = md5($value);
}
还有其他方法可以创建event处理程序来保存/创建等。
注意:为什么不使用Hash::make($value)?