У меня два контроллера
App\Http\Controllers\Controller\StartController
App\Http\Controllers\Controller\Legacy\StartLegacyController
Когда я получаю запрос на моем первом контроллере, я проверяю, содержит ли запрос version=legacy
Если да, то я хочу перенаправить этот запрос на StartLegacyController@index
Действие
Иначе я обработаю запрос в StartController
.
Вот мой код от StartController
public function index(Request $request)
{
$version = $request->input('version', 'legacy');
if ($version == 'legacy') {
return Redirect::action('App\Http\Controllers\Legacy\StartLegacyController@index');
}
dd('OKK',$request->all());
}
Я получаю
(1/1) RuntimeException
A facade root has not been set.
Я пытался удалить Пространство имен, даже поместить контроллер в то же пространство имен, но оно не работает, буду очень признателен за любую помощь.
EDIT
Так как Redirect::action()
в этом случае не работает, я нашел временное решение моей проблемы, как предложил @Ali Mrj
$router->get('/start', function (\Illuminate\Http\Request $request) use ($router) {
$version = $request->input('version', 'legacy');
if($version == 'legacy'){
$controller = $router->app->make('App\Http\Controllers\Legacy\StartLegacyController');
return $controller->index();
} else{
$controller = $router->app->make('App\Http\Controllers\StartPageController');
return $controller->index($request);
}
});
Буду признателен за другие решения проблемы ...