Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改Laravel ORM保存功能?_Laravel_Orm_Eloquent - Fatal编程技术网

如何更改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,将尝试一下。谢谢你的回答