Использовать пользовательский маршрут для аутентификации Laravel - PullRequest
0 голосов
/ 08 февраля 2019

В маршрутах проверки электронной почты я хотел изменить маршрут, добавив язык в URL.например, вместо / email / verify мы хотим иметь /fr/email/verify.

Route

// Email Verification Routes
Route::get('{lg?}/email/verify', 'Auth\VerificationController@show')
    ->name('verification.notice')
    ->where('lg', '(fr)|(en)');

В классе EnsureEmailIsVerified пользователинаходятся на маршруте «valid.notice»:

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Contracts\Auth\MustVerifyEmail;

class EnsureEmailIsVerified
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request $request
     * @param  \Closure $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (!$request->user() ||
            ($request->user() instanceof MustVerifyEmail &&
                !$request->user()->hasVerifiedEmail())) {
            return $request->expectsJson()
                ? abort(403, 'Your email address is not verified.')
                : Redirect::route('verification.notice');
        }

        return $next($request);
    }
}

К сожалению, Redirect::route('verification.notice') перенаправляет на / email / verify вместо en / email / verify (или fr / email / verify).Что я пропустил?

1 Ответ

0 голосов
/ 09 февраля 2019

У меня нет доступа к моей машине разработчика, но что-то вроде

Redirect::route('verification.notice', ['lg' => 'en'])

или

redirect()->route('profile', ['lg' => 'en']);

должно работать.

...