2016-01-02 1 views
1

Ищу перенаправлять после входа на страницу с URL /dashboard/startLaravel 5.2 с использованием имени маршрута в разделе Настройка защищенных redirectPath

Мой routes.php содержит следующий маршрут:

Route::get('/dashboard/start', ['uses' => 'Settings\[email protected]', 'as' => 'app.home']); 

В процессе Laravel Auth можно реализовать Войти перенаправлением переопределение путем добавления декларации в начале контроллера app\Http\Controllers\Auth\AuthController следующим образом:

protected $redirectPath = '/dashboard/start'; 

Я хочу использовать именованные маршруты во всем коде, чтобы, если я изменяю url в файле маршрутов, это не влияет на код, пока имя не изменилось.

Я попытался это, но это не удается:

protected $redirectPath = route('app.home'); 

Я не могу найти пример, ни упоминания об этом. Есть идеи? Благодаря!

ответ

0

У вас есть несколько вариантов. Вы можете переопределить метод redirectPath на контроллере.

protected $redirectPath = 'app.home'; 

public function redirectPath() 
{ 
    return route($this->redirectPath); 
} 

Вы также можете сделать способ authenticated. Метод handleUserWasAuthenticated (который вызывается, когда Auth::attempt успешно) проверяет существование метода authenticated, и если он существует, он будет вызывать его и возвращать результаты вместо обычного redirect()->intended($this->redirectPath()). Этот метод получит текущий запрос и пользователь с аннулированием.

Как handleUserWasAuthenticated называет authenticated:

return $this->authenticated($request, Auth::user()); 
-1

Вы можете перенаправить много пути. вы можете перенаправить маршрут. написать routes.php

Route::get('first-route',['uses'=>'[email protected]','as'=>'first']); 
Route::get('second-route',['as'=>'second','uses'=>'[email protected]']); 

и написать контроллер

public function first(){ 
     return "This is a simple Test Controller"; 
    } 
    public function second(){ 
     return redirect()->route('first'); 
    } 

и вы можете использовать метод действия, как этот

public function second(){ 
     return redirect()->action('[email protected]'); 
    } 

или

public function second(){ 
     $url=action('[email protected]'); 
     return redirect($url); 
    } 
+0

как делает эту помощь отрегулируйте аудит AuthController ct путь? – lagbox