Laravel 专题
您的位置:php > Laravel专题 > Laravel重定向
Laravel重定向
作者:--    发布时间:2019-11-20

重定向至命名路由

命名路由用于给出具体的名字命名到一个路由。名称可以使用“作为”数组键来被分配。

route::get('user/profile', ['as' => 'profile', function () {
   //
}]);
注 - 在这里,我们命名为“profile”到路由“user/profile”。

示例

第1步 - 创建一个名为 test.php 的视图,并将其保存在resources/views/test.php。
<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');
});
第3步 - 访问以下网址测试命名的路由例子。

http://localhost:8000/redirect

第4步 - 上面的url执行后,因为我们重定向到 http://localhost:8000/test 同时你会被重定向到命名路由 "testing"。

第5步 - url的成功执行后原来的url会跳转到  http://localhost:8000/test,您会收到以下输出 -

重定向到控制器动作

不仅命名的路由,但我们也可以重定向到控制器动作。我们只需要简单将控制器和动作名称传递给动作方法,如下面的例子所示。如果想传递一个参数,那可以把它作为操作方法的第二个参数传递。

return redirect()->action(‘nameofcontroller@methodname’,[parameters]);

示例

第1步- 执行以下命令来创建一个名为 redirectcontroller。
php artisan make:controller redirectcontroller
第2步 - 成功执行后,您会收到以下输出 -

第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');
});
第5步 - 请访问以下网址进行测试例子。

http://localhost:8000/redirectcontroller

第6步 - 输出结果如下图所示。


网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册