我正在測驗我的密碼重置通知,看看它是否回應 APP_URL 中的更改,不幸的是它沒有。盡管如此,它仍會回應 APP_NAME 環境變數中的更改。我清除了快取,清除了視圖,運行了 php artisan optimize:clear 不幸的是沒有任何效果。
很奇怪的是,它回應 APP_NAME 中的更改而不是 APP_URL ...
這是我的 env 檔案
APP_NAME=WP
APP_ENV=local
APP_KEY=base64:uqkPjWhwt7orbinLRlRN BNn6BxbdIRHSV4dG4dw5S0=
APP_DEBUG=true
APP_URL=http://example.com
這是未更改的 ResetPassword toMail() 函式
public function toMail($notifiable)
{
if (static::$toMailCallback) {
return call_user_func(static::$toMailCallback, $notifiable, $this->token);
}
if (static::$createUrlCallback) {
$url = call_user_func(static::$createUrlCallback, $notifiable, $this->token);
} else {
$url = url(route('password.reset', [
'token' => $this->token,
'email' => $notifiable->getEmailForPasswordReset(),
], false));
}
//dd(env('APP_URL')); returns http://example.com
// dd(config('app.url')); returns http://example.com
// dd($url); returns http://127.0.0.1:8000/{token}?email!
return (new MailMessage)
->subject(Lang::get('Reset Password Notification'))
->line(Lang::get('You are receiving this email because we received a password reset request for your account.'))
->action(Lang::get('Reset Password'), $url)
->line(Lang::get('This password reset link will expire in :count minutes.', ['count' => config('auth.passwords.'.config('auth.defaults.passwords').'.expire')]))
->line(Lang::get('If you did not request a password reset, no further action is required.'));
}
uj5u.com熱心網友回復:
排隊通知將在構建 url 時使用 APP_URL 配置值。但是,非排隊通知在構建 url 時將使用 HTTP 請求資訊。
該ResetPassword通知是不排隊的通知,所以它會使用該URL從觸發通知的原始HTTP請求。在這種情況下,您似乎在http://127.0.0.1:8000進行本地測驗,因此這是用于構建密碼重置鏈接的基本 URL。
如果通知已排隊,則將使用運行控制臺內核的佇列作業器發送通知。控制臺內核構建一個假請求,它根據 APP_URL 配置值設定基本 url。
請注意,有一段時間在通知中專門使用了 ResetPasswordconfig('app.url')通知來構建 URL。這是在 5.4.22 中引入的,但后來在 6.18.7 中洗掉。從那以后,它的行為就像其他所有通知一樣。
uj5u.com熱心網友回復:
在對 .env 檔案進行更改后,您可能需要運行php artisan cache:clear和php artisan config:clear。
https://laravel.com/docs/6.x/configuration#configuration-caching
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/344427.html
上一篇:laravel過濾器搜索姓名[空格]姓氏一起失敗,個人姓名或姓氏搜索有效
下一篇:將引數傳遞給方法
