Есть ли способ переопределить RouteServiceProvider :: HOME в Laravel? - PullRequest
0 голосов
/ 20 марта 2020

Я недавно начал изучать Laravel. Я переопределяю метод redirectTo() в контроллере LoginController по умолчанию в моем приложении Laravel.

class LoginController extends Controller
{
    use AuthenticatesUsers;

    /**
     * Where to redirect users after login.
     *
     * @var string
     */
    protected $redirectTo = RouteServiceProvider::HOME;

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }

    protected function redirectTo()
    {
        return '/dashboard';
    }
}

Он работает нормально, но если уже аутентифицированный пользователь пытается войти снова ( пользователь не вышел из системы и пытается посетить маршрут '/ login'), пользователь перенаправляется на '/ home', который, очевидно, является константой RouteServiceProvider :: HOME. Я могу просто изменить константу RouteServiceProvider :: HOME, но наверняка должен быть лучший вариант. Кроме того, если перенаправление зависит от роли пользователя, простое изменение константы не принесет пользы. Итак, как правильно переопределить константу RouteServiceProvider :: HOME?

1 Ответ

0 голосов
/ 03 мая 2020

Это не метод, а константа. Вы можете изменить его в app\Providers\RouteServiceProviders.php. Вы найдете эту строку:

public const HOME = '/home';

Измените ее на все, что захотите. Если вы не хотите изменять его, а только локально в строке

protected $redirectTo = RouteServiceProvider::HOME;

на

protected $redirectTo = '/whatever'
...