通过引用外键进行更新

时间:2018-08-07 11:48:19

标签: laravel eloquent laravel-5.6 one-to-one

密码在模型/表格中已经存在。在这里我想更改密码。

我想使用regist_id(外键)进行更新,而不是通过表passw中的ID进行更新。

控制器:

$passw = Passw::whereRegist_id($id)->get();       //Regist_id is an foregin key
$regist->pass()->update([
                    'password1' => $request->newpassword,
                    'password2' => $request->newpassword1
                ]);
return view('welcome');

注册模型:

public function pass(){
    return $this->hasOne('App\Passw');
}

当我提供更新时,它将重定向到欢迎页面。但未更改密码值。

我在哪里做错了。

1 个答案:

答案 0 :(得分:1)

您可以这样更新

$passw = Passw::where('regist_id', $id)->first();

$passw->update([
                 'password1' => $request->newpassword,
                 'password2' => $request->newpassword1
              ]);

您可以使用Regist来获取$id模型

$regist = Regist::with('pass')->find($id);

$regist->pass->update([
         'password1' => $request->newpassword,
         'password2' => $request->newpassword1
]);