【发布时间】:2018-06-29 07:17:26
【问题描述】:
我的模型访问器和修改器用于数据库表字段中的哈希/重新哈希数据。例如:
public function setFullNameAttribute($value)
{
$this->attributes['full_name'] = Helper::geted('encrypt', $value);
}
public function getFullNameAttribute($value)
{
return Helper::geted('decrypt', $value);
}
当我将数据保存到数据库时,所有发送的数据都以散列形式保存,但更新数据未散列。我的保存/更新代码:
$profile = [
'full_name' => "John",
'address' => "United Kingdom"
];
$profile_save = new Profile($profile);
$exist = Personal::where('user_id', Auth::id())->count();
if($exist == 0) $user->profile()->save($profile_save);
if($exist == 1) $user->profile()->update($profile);
当我第一次将此信息保存到数据库时:
当我第二次输入到当前 URL 数据将被更新:
【问题讨论】:
-
发布您的
Helper::geted('decrypt', $value); -
dd($profile); (更新之前)- 发布的数据在那时是否加密?
-
我更新了我的问题。您可以查看图片的详细信息。
-
updateOrCreate()看起来更适合您的情况。 -
updateOrCreate()在刷新页面或进入当前测试 url 时保存重复行。 @JonasStaudenmeir
标签: php laravel eloquent laravel-5.6