簡體   English   中英

Laravel 5.4:API密碼重置更新或創建

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM