2015-11-08 41 views
0

我用这个函数从形式获取值并将其保存到数据库:如何更改Laravel ORM保存功能?

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; 
} 

一个表单输入的是密码字段,问题是,该值保存到DATABSE为“pasword “而不是作为md5标注的值。该表单是一个配置文件编辑表单。

所以,问题是:如何将这个值保存为一个MD5值,使用上面的代码?

解决方案,我发现,并试图思考:

-before尝试,获得请求密码值,并与MD5替代

改变它 - 使用插入查询

什么是最好的解决方案?

回答

0

在你的模型像下面给出的一个创建mutator方法:

public function setPasswordAttribute($value) 
{ 
    $this->attributes['password'] = md5($value); 
} 

还有像创建event处理保存/创建等其他方式


注:为什么不使用Hash::make($value)呢?

+1

我仍然在学习Laravel,会试试看。 thx回答 –