ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

四、PHP框架Laravel学习笔记——路由命名和分组

2021-05-05 15:31:28  阅读:158  来源: 互联网

标签:Laravel function task group index Route PHP 路由


一.路由命名

  1. 给一个制定好的路由进行命名,可以生成 URL 地址或进行重定向;
Route::get('task', 'TaskController@index')
	 ->name('task.index'); 
  1. 在控制器区域,使用助手函数 route()来获取路由生成的 URL 地址;
    //生成 url 地址,http://localhost:8000/task
    在这里插入图片描述
route('task.index'); 

PS:URL 是 URI 的子集,更多区别请百度;

  1. 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}
在这里插入图片描述

  1. 使用 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; 
	}); 
});

路由分组第一种写法:
在这里插入图片描述
路由分组第二种写法:(推荐)
在这里插入图片描述
在这里插入图片描述

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

//引入中间件,方法一

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

//引入中间件,方法二

Route::middleware(['中间件'])->group(function () {}); 
  1. 可以设置路由路径前缀,通过 prefix 来设置,也有两种方法,具体如下: //引入路由前缀,方法一
Route::group(['prefix'=>'api'],function () {}); 

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

Route::prefix('api')->group(function () {}); 
  1. 可以设置子域名,从而限定路由可执行的域名,有两种方法,具体如下:

//引入子域名,方法一

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;

  1. 可以设置名称前缀,方式两种,也可以嵌套,具体如下:
    //名称前缀,方式一
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;

在这里插入图片描述

标签:Laravel,function,task,group,index,Route,PHP,路由
来源: https://blog.csdn.net/weixin_44827418/article/details/116424894

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有