如何更改Laravel ORM保存功能?
我使用此函数从表单中获取值并将其保存到数据库:如何更改Laravel ORM保存功能?,laravel,orm,eloquent,Laravel,Orm,Eloquent,我使用此函数从表单中获取值并将其保存到数据库: public function save($request, $distID) { try { $model = Dist::firstOrNew([ 'distID' => $distID ]); foreach ($request as $key => $value) { $model->{$key} = $value; } $mo
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;
}
其中一个表单输入是密码字段,问题是将该值作为“pasword”而不是md5加密值保存到数据库。该表单是一个配置文件编辑表单
所以问题是:如何使用上面的代码将该值保存为md5值
我找到了解决方案,并考虑尝试:
-在尝试之前,获取请求密码值并使用md5替代方案更改它
-使用插入查询
最好的解决方案是什么?在模型中创建一个方法,如下所示:
public function setPasswordAttribute($value)
{
$this->attributes['password'] = md5($value);
}
还有其他方法,如创建用于保存/创建的处理程序等
注意:为什么不改用?我仍在学习Laravel,将尝试一下。谢谢你的回答