Ich versuche, Laravel zu Lokalisierungszwecken in eine Präfixgruppe eingebunden zu verwenden Auth::routes()
:
Route::group(['prefix' => '{locale}', 'where' => ['locale' => '[a-zA-Z]{2}']], function () { Auth::routes(); });
In meinen Ansichten gebe ich beim Erstellen solcher Routen jetzt die aktuelle Sprache an route('password.confirm', app()->getLocale())
Aber wenn ich versuche, die Funktion „Passwort vergessen“ zu verwenden, wird eine Ausnahme ausgelöst. Ich denke, das liegt daran, dass Laravel intern einen Link zum Zurücksetzen des Passworts erstellt und dabei eine benannte Route verwendet, ohne den aktuellen Sprachparameter zu übergeben.
Illuminate\Routing\Exceptions\UrlGenerationException Missing required parameter for [Route: password.reset] [URI: {locale}/password/reset/{token}] [Missing parameter: locale].
Ist es möglich, Auth::routes()
auf irgendeine Weise global zu verwenden und den fehlenden „locale“-Parameter einzufügen? Oder was ist der empfohlene Ansatz, ohne die Authentifizierungsmethode von Laravel zu überschreiben?
我找到了一个解决方案。感谢这个答案 https://stackoverflow.com/a/49380950/9405862 它激发了我向我的路由组添加一个中间件,该中间件为URL添加了缺少的参数:
我的中间件现在看起来像这样: