[英]Laravel 5.4: api password reset updateOrCreate
Laravel 5.4,PHP 5.6嘗試updateOrCreate
密碼重置令牌她是我的嘗試。
$passwordReset = ( new PasswordReset )->updateOrCreate(
['email' => $user->email],
[
'email' => $user->email,
'token' => str_random(60)
]
);
如果用戶第一次重設密碼,創建工作正常,但是在更新時,我得到了這個QueryException
SQLSTATE [42S22]:找不到列:1054“ where子句”中的未知列“ id”(SQL:更新
password_resets
設置token
= 8ALMd5schQR9KNQ5kIt89bwr5lu5mb5G5D1YLpkittNiz5N5Z5ZxCcyhYaBp0X97,其中id
為null)
您的代碼的問題在於laravel將主鍵預定義為id。
您有3個解決方案:
1)您可以添加一個id列,自動遞增並使其成為您的主鍵
2)使用簡單:
protected $primaryKey = 'email';
在模型中重新定義您的主鍵,
3)最后,您自己放置一個where子句:
->where('email',$user->email)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.