J'essaie d'utiliser Laravel enveloppé dans un groupe de préfixes à des fins de localisation Auth::routes()
:
Route::group(['prefix' => '{locale}', 'where' => ['locale' => '[a-zA-Z]{2}']], function () { Auth::routes(); });
À mon avis, je fournis désormais la langue actuelle lors de la création d'itinéraires comme celui-ci route('password.confirm', app()->getLocale())
Mais lorsque j'essaie d'utiliser la fonctionnalité "Mot de passe oublié", une exception est générée. Je pense que c'est parce que Laravel crée un lien de réinitialisation de mot de passe en interne, en utilisant une route nommée sans transmettre le paramètre de langue actuel.
Illuminate\Routing\Exceptions\UrlGenerationException Missing required parameter for [Route: password.reset] [URI: {locale}/password/reset/{token}] [Missing parameter: locale].
Est-il possible d'utiliser Auth::routes()
globalement d'une manière ou d'une autre et d'injecter le paramètre « locale » manquant ? Ou quelle est l'approche recommandée sans remplacer la méthode d'authentification de Laravel ?
J'ai trouvé une solution. Merci pour cette réponse https://stackoverflow.com/a/49380950/9405862 Cela m'a inspiré à ajouter un middleware à mon groupe de routage qui ajoute les paramètres manquants à l'URL :
Mon middleware ressemble maintenant à ceci :