我有一個資料庫,其中有一列以mail用戶表命名,但在 Laravel 中它是email. 我現在的問題是忘記密碼功能。
我總是會收到以下錯誤:
SQLSTATE[23000]: Integrity constraint violation:
1048 Column 'email' cannot be null
(SQL: insert into `password_resets` (`email`, `token`, `created_at`) values
(?, $2y$10$....., 2022-01-03 16:55:22))
我為忘記密碼創建了一個自定義路由,但不知何故不起作用。
Route::post('/forgot-password', function (Request $request) {
$request->validate([
'mail' => ['required', 'email'],
'username' => ['required'],
]);
$status = Password::sendResetLink(
$request->only('username', 'mail')
);
return $status === Password::RESET_LINK_SENT
? back()->with(['status' => __($status)])
: back()->withErrors(['email' => __($status)]);
})->middleware('guest')->name('password.mail');````
在fortify.php中我設定了'email' => 'mail',但是沒有區別。也許我做了一些非常愚蠢的事情,但我是 Laravel 的新手。
那么我該如何解決這個問題?
將郵件列重命名為電子郵件是不可能的,并且在用戶表中創建第二列,該列僅命名為具有相同內容的電子郵件是愚蠢的。
問候。
uj5u.com熱心網友回復:
您應該覆寫getEmailForPasswordReset您嘗試使用的模型上的方法。令牌存盤庫將通過呼叫模型向模型詢問電子郵件欄位的值getEmailForPasswordReset。
public function getEmailForPasswordReset()
{
return $this->mail;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/402794.html
標籤:
