首页 Order Laravel 正文

Laravel 路由命名和分组

金鹏头像 金鹏 Laravel 2022-04-01 10:04:47 0 506
导读:一.路由命名1.给一个制定好的路由进行命名,可以生成URL 地址或进行重定向;Route ::get('task','Task...
.路由命名

1. 给一个制定好的路由进行命名,可以生成 URL 地址或进行重定向;

Route ::get( 'task ', 'TaskController@index ')

->name( 'task .index ');

 

2. 在控制器区域,使用助手函数 route()来获取路由生成的 URL 地址;

//生成 url 地址 http://localhost:8000/task

route( 'task.index ');          PSURL URI 的子集,更多区别请百度;

 

3. route()助手的第二参数为参数,第三参数为是否包含域名 URL

// http://localhost:8000/task?id=10

route( 'task.index ', [ 'id '=>10]);

 

// /task?id=10

$url = route( 'task.index ', [ 'id '=>10], false);

 

PS:如果要更改成/task/10 模式,路由需要相应更改 task/{id}

 

4. 使用 redirect()助手结合 route()生成一个重定向跳转,注意不要自我死跳;

//生成重定向

return redirect()->route( 'task.index ', [ 'id '=>10]);

 

.路由分组

1. 路由分组功能是为了让大量路由共享路由属性,包括中间件、命名空间等

//一个空的分组路

Route ::group([], function () {

Route ::get( 'index/{id} ', function ($id) {

return 'index '.$id;

});

Route ::get( 'task/{id} ', function ($id) {

return 'task '.$id;

});

});


 

2. 可以将中间件作用域路由分组中,有两种写法,至于中间件?后续章节讲解

//引入中间件,方法一

Route::group([ 'middleware '=> '中间名 '], function () {});

//引入中间件,方法二

Route::middleware([ '中间件'])->group(function () {});

3. 可以设置路由路径前缀,通过 prefix 来设置,也有两种方法,具体如下:

//引入路由前缀,方法一

Route ::group([ 'prefix '=> 'api '],function () {});

//引入路由前缀,方法二

Route ::prefix( 'api ')->group(function () {});

 

4. 可以设置子域名,从而限定路由可执行的域名,有两种方法,具体如下:

//引入子域名,方法一

Route::group(['domain'=>'127.0.0.1 '], function () {});

//引入子域名,方法二

Route::domain('127.0.0.1 ')->group(function () {});

 

5. 可以设置命名空间,让命名空间分配给控制器,让其得以访问,具体如下

//命名空间,方法

Route ::group([ 'namespace '=> 'Admin '],function () {});

//命名空间,方法

Route ::namespace( 'Admin ')->group(function () {});

 

PS:在 Controller 目录下创建 Admin 目录,再其目录下创建的控制器命名空间如下: namespace App\Http\Controllers\Admin;

 

6. 可以设置名称前缀,方式两种,也可以嵌套,具体如下:

//名称前缀,方式

Route ::group([ 'as '=> 'task. '], function () {

Route ::get( 'task ', 'TaskController@index ')->name( 'index ');

Route ::get( 'task/url ', 'TaskController@url ');

});

 

//名称前缀,方式

Route ::name( 'task. ')->group( function () {});

 

//生成 URL

$url = route( 'task.index ');

return $url;

 

//嵌套方式命名前

Route ::name( 'task. ')->group(function () {

Route ::name( 'abc. ')->group(function () {

Route ::get( 'task ', 'TaskController@index ')->name( 'index ');

});

Route ::get( 'task/url ', 'TaskController@url ');

});

 

//生成 URL

$url = route( 'task.abc.index ');

return $url;


本文地址:https://www.jinpeng.work/?id=149
若非特殊说明,文章均属本站原创,转载请注明原链接。
广告3

欢迎 发表评论:

  • 请填写验证码

日历

«    2025年8月    »
123
45678910
11121314151617
18192021222324
25262728293031

控制面板

您好,欢迎到访网站!
  查看权限
广告2

退出请按Esc键