命名路由用于给出具体的名字命名到一个路由。名称可以使用“作为”数组键来被分配。
route::get('user/profile', ['as' => 'profile', function () {
//
}]);
<html>
<body>
<h2>example of redirecting to named routes</h2>
</body>
</html>
第2步 - 在 routes.php 文件中,我们已经创建了 test.php 文件的路由,把它重新命名为 “testing”。我们还建立了一个路由 “redirect”,这将请求重定向到指定路由“testing”。
app/http/routes.php
route::get('/test', ['as'=>'testing',function(){
return view('test');
}]);
route::get('redirect',function(){
return redirect()->route('testing');
});
http://localhost:8000/redirect
第4步 - 上面的url执行后,因为我们重定向到 http://localhost:8000/test 同时你会被重定向到命名路由 "testing"。
不仅命名的路由,但我们也可以重定向到控制器动作。我们只需要简单将控制器和动作名称传递给动作方法,如下面的例子所示。如果想传递一个参数,那可以把它作为操作方法的第二个参数传递。
return redirect()->action(‘nameofcontroller@methodname’,[parameters]);
php artisan make:controller redirectcontroller
第3步 - 将以下代码复制到文件:app/http/controllers/redirectcontroller.php.
app/http/controllers/redirectcontroller.php
<?php
namespace app\http\controllers;
use illuminate\http\request;
use app\http\requests;
use app\http\controllers\controller;
class redirectcontroller extends controller {
public function index(){
echo "redirecting to controller's action.";
}
}
第4步 - 添加以下行到文件: app/http/routes.php.
app/http/routes.php
route::get('reindex','redirectcontroller@index');
route::get('/redirectcontroller',function(){
return redirect()->action('redirectcontroller@index');
});
http://localhost:8000/redirectcontroller

