如何重定向到声明为Route :: controllers的特定路由

时间:2015-07-20 07:21:28

标签: php laravel-5

我正在使用Laravel 5,我想从另一个控制器重定向到登录页面。我习惯使用Redirect::route,但路由定义为Route::controllers

laravel安装的路线:

Route::controllers([
    'auth' => 'Auth\AuthController',
    'password' => 'Auth\PasswordController',
]);

有没有办法可以将某些路由声明为命名路由,然后在Redirect::route中使用它?

1 个答案:

答案 0 :(得分:3)

您可以在控制器路径定义中命名您的路线:

  

如果您想在控制器上命名一些路线,那么   可以将一组名称作为第三个参数传递给控制器   方法:

Route::controller('users', 'UserController', [
    'getShow' => 'user.show',
]);

然后你应该能够得到这样的网址:

$url = route('user.show');

或者您可以通过使用控制器和操作来获取URL而不指定名称:

$url = action('UserController@getShow');

最后总是有一个“直接”的网址:

$url = url('user/show');

来自laravel docs

的信息

关于直接在controllers方法中命名。这是来自laravel core:

public function controllers(array $controllers)
{
    foreach ($controllers as $uri => $controller)
    {
        $this->controller($uri, $controller);
    }
}

正如您所看到的,名称不被接受或传递给控制器​​方法,因此您可能无法做到这一点。如果您想分配路由名称,则必须将Route:controllers拆分为单独的Route::controller并添加名称数组。