一.路由命名

  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;

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

  1. 三、PHP框架Laravel学习笔记——路由参数、重定向、视图

    一.路由参数 我们已经学习了部分路由参数的功能,比如动态传递{id}: 那么,有时这个参数需要进行约束,我们可以使用正则来限定必须是数字: Route::get('task/read/{id}', ' ...

  2. 二、PHP框架Laravel学习笔记——路由的定义和控制器

    一.路由的定义 什么是路由?路由就是提供接受 HTTP 请求的路径,并和程序交互的功能: 简单点理解,就是为了提供访问程序的 URL 地址,所做的一些设置工作: phpstorm 支持 cmd 操作, ...

  3. 十四、PHP框架Laravel学习笔记——构造器的排序分组、子查询

    一.排序分组 使用 whereColumn()方法实现两个字段相等的查询结果: //判断两个相等的字段,同样支持 orWhereColumn() //支持符号'create_time','>', ...

  4. 五、PHP框架Laravel学习笔记——回退、当前路由、单行为

    一.单行为控制器 之前的课程,我们简单的创建和定义了控制器,并继承了控制器基类: 为何要继承基类?因为继承基类后,可以使用基类的方法,比如中间件等: 继承基类后除了支持中间件快捷使用,还支持验证.列队 ...

  5. 二十四、PHP框架Laravel学习笔记——模型的数据集合

    一.数据集合 数据集合,就是已经将模型方法 get()获取到的数据再进行处理: 比如:map()方法,通过它可以实现类似访问器一样对字段进行处理的效果: $users = User::get(); / ...

  6. 七、PHP框架Laravel学习笔记——资源控制器

    一.资源控制器 声明:资源控制器是某个特定场景下的产物,完全理解需要 PHP 项目基础: 比如开发过博客系统,留言帖子系统之类,具有类似思维,否则你懂的-: 只是学习了 PHP 基础,就立刻学习框架的 ...

  7. 八、PHP框架Laravel学习笔记——表单伪造和 CSRF 保护

    一.表单伪造 之前一直用的 GET 请求方式,而表单可以实现 POST 方式,我们来实验下: 先在 TaskController 创建两个方法,一个表单页,一个接受表单数据路由: public fun ...

  8. 六、PHP框架Laravel学习笔记——响应设置和重定向

    一.响应设置 路由和控制器处理完业务都会返回一个发送到浏览器的响应:return: 比如字符串会直接输出,而数组则会输出 json 格式,本身是 Response 对象: return [1, 2, ...

  9. 二十七、PHP框架Laravel学习笔记——模型的多对多关联

    二.多对多关联 多对多关联,比前面两种要复杂一些,需要一张中间表,共三张: (1) .users:用户表: (2) .roles:权限表: (3) .role_user:中间表:默认表名,user_i ...

最新文章

  1. vue 不是内部或外部命令,也不是可运行的程序 或批处理文件
  2. [置顶] 我整理的一些常用网址
  3. Linux系统监控之磁盘I/O篇
  4. java 正则 栈溢出_关于Java正则引起的StackOverFlowError问题以及解决方案 | 学步园...
  5. python3.7 倒计时
  6. css多行文字居中对齐
  7. piranha(注意iptables和selinux的问题)
  8. Cluster status reports MDSs behind on trimming
  9. QML 全屏 输入法无法显示
  10. doker学习4---docker容器数据卷
  11. Linux局域网共享打印机(实用型文档)
  12. 不缺流量的罗永浩、李佳琦们,为啥深耕企业微信社群?
  13. 新iPhone 12泄漏
  14. C语言实现可写入文件的账号密码登录系统,密码输入时掩盖,登录界面菜单选择,更改密码系统,课设必备。
  15. 阿拉伯数字转化为中文的数字(金额)
  16. 温度传感器php,温度传感器基础知识
  17. Compound word transformer代码详解(一)数据预处理
  18. 微信退款php参数格式错误,PHP实现微信申请退款功能
  19. 必备的c语言入门自学教程2021新版!
  20. 强强联合! 统信携手ToDesk企业版打造国产远控安全新标杆

热门文章

  1. 数据结构与算法--9.常见时间复杂度及其之间的关系
  2. Django二次开发对接FastDFS
  3. unity应用开发实战案例_「简历」STAR法则的实战应用,附手把手教学案例
  4. 计算机科学与技术考研课程安排,计算机科学与技术(0812)硕士研究生培养方案(一)...
  5. Django REST framework 认证、权限和频率组件
  6. Django/Flask/Tornado三大web框架性能分析
  7. intel——5G的通信网络架构及平台
  8. 每天干的啥?(2019.3)
  9. NVLink技术及影响解析
  10. SpringCloud学习--微服务架构