命名路由用于给出具体的名字命名到一个路由。名称可以使用“作为”数组键来被分配。
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