四、PHP框架Laravel学习笔记——路由命名和分组
一.路由命名
- 给一个制定好的路由进行命名,可以生成 URL 地址或进行重定向;
Route::get('task', 'TaskController@index')->name('task.index');
- 在控制器区域,使用助手函数 route()来获取路由生成的 URL 地址;
//生成 url 地址,http://localhost:8000/task
route('task.index');
PS:URL 是 URI 的子集,更多区别请百度;
- 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}
- 使用 redirect()助手结合 route()生成一个重定向跳转,注意不要自我死跳;
//生成重定向
return redirect()->route('task.index', ['id'=>10]);
二.路由分组
- 路由分组功能是为了让大量路由共享路由属性,包括中间件、命名空间等;
//一个空的分组路由
Route::group([], function () { Route::get('index/{id}', function ($id) { return 'index'.$id; }); Route::get('task/{id}', function ($id) { return 'task'.$id; });
});
路由分组第一种写法:
路由分组第二种写法:(推荐)
- 可以将中间件作用域路由分组中,有两种写法,至于中间件?后续章节讲解;
//引入中间件,方法一
Route::group(['middleware'=>'中间名'], function () {});
//引入中间件,方法二
Route::middleware(['中间件'])->group(function () {});
- 可以设置路由路径前缀,通过 prefix 来设置,也有两种方法,具体如下: //引入路由前缀,方法一
Route::group(['prefix'=>'api'],function () {});
//引入路由前缀,方法二
Route::prefix('api')->group(function () {});
- 可以设置子域名,从而限定路由可执行的域名,有两种方法,具体如下:
//引入子域名,方法一
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;
- 可以设置名称前缀,方式两种,也可以嵌套,具体如下:
//名称前缀,方式一
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学习笔记——路由命名和分组相关推荐
- 三、PHP框架Laravel学习笔记——路由参数、重定向、视图
一.路由参数 我们已经学习了部分路由参数的功能,比如动态传递{id}: 那么,有时这个参数需要进行约束,我们可以使用正则来限定必须是数字: Route::get('task/read/{id}', ' ...
- 二、PHP框架Laravel学习笔记——路由的定义和控制器
一.路由的定义 什么是路由?路由就是提供接受 HTTP 请求的路径,并和程序交互的功能: 简单点理解,就是为了提供访问程序的 URL 地址,所做的一些设置工作: phpstorm 支持 cmd 操作, ...
- 十四、PHP框架Laravel学习笔记——构造器的排序分组、子查询
一.排序分组 使用 whereColumn()方法实现两个字段相等的查询结果: //判断两个相等的字段,同样支持 orWhereColumn() //支持符号'create_time','>', ...
- 五、PHP框架Laravel学习笔记——回退、当前路由、单行为
一.单行为控制器 之前的课程,我们简单的创建和定义了控制器,并继承了控制器基类: 为何要继承基类?因为继承基类后,可以使用基类的方法,比如中间件等: 继承基类后除了支持中间件快捷使用,还支持验证.列队 ...
- 二十四、PHP框架Laravel学习笔记——模型的数据集合
一.数据集合 数据集合,就是已经将模型方法 get()获取到的数据再进行处理: 比如:map()方法,通过它可以实现类似访问器一样对字段进行处理的效果: $users = User::get(); / ...
- 七、PHP框架Laravel学习笔记——资源控制器
一.资源控制器 声明:资源控制器是某个特定场景下的产物,完全理解需要 PHP 项目基础: 比如开发过博客系统,留言帖子系统之类,具有类似思维,否则你懂的-: 只是学习了 PHP 基础,就立刻学习框架的 ...
- 八、PHP框架Laravel学习笔记——表单伪造和 CSRF 保护
一.表单伪造 之前一直用的 GET 请求方式,而表单可以实现 POST 方式,我们来实验下: 先在 TaskController 创建两个方法,一个表单页,一个接受表单数据路由: public fun ...
- 六、PHP框架Laravel学习笔记——响应设置和重定向
一.响应设置 路由和控制器处理完业务都会返回一个发送到浏览器的响应:return: 比如字符串会直接输出,而数组则会输出 json 格式,本身是 Response 对象: return [1, 2, ...
- 二十七、PHP框架Laravel学习笔记——模型的多对多关联
二.多对多关联 多对多关联,比前面两种要复杂一些,需要一张中间表,共三张: (1) .users:用户表: (2) .roles:权限表: (3) .role_user:中间表:默认表名,user_i ...
最新文章
- vue 不是内部或外部命令,也不是可运行的程序 或批处理文件
- [置顶] 我整理的一些常用网址
- Linux系统监控之磁盘I/O篇
- java 正则 栈溢出_关于Java正则引起的StackOverFlowError问题以及解决方案 | 学步园...
- python3.7 倒计时
- css多行文字居中对齐
- piranha(注意iptables和selinux的问题)
- Cluster status reports MDSs behind on trimming
- QML 全屏 输入法无法显示
- doker学习4---docker容器数据卷
- Linux局域网共享打印机(实用型文档)
- 不缺流量的罗永浩、李佳琦们,为啥深耕企业微信社群?
- 新iPhone 12泄漏
- C语言实现可写入文件的账号密码登录系统,密码输入时掩盖,登录界面菜单选择,更改密码系统,课设必备。
- 阿拉伯数字转化为中文的数字(金额)
- 温度传感器php,温度传感器基础知识
- Compound word transformer代码详解(一)数据预处理
- 微信退款php参数格式错误,PHP实现微信申请退款功能
- 必备的c语言入门自学教程2021新版!
- 强强联合! 统信携手ToDesk企业版打造国产远控安全新标杆
热门文章
- 数据结构与算法--9.常见时间复杂度及其之间的关系
- Django二次开发对接FastDFS
- unity应用开发实战案例_「简历」STAR法则的实战应用,附手把手教学案例
- 计算机科学与技术考研课程安排,计算机科学与技术(0812)硕士研究生培养方案(一)...
- Django REST framework 认证、权限和频率组件
- Django/Flask/Tornado三大web框架性能分析
- intel——5G的通信网络架构及平台
- 每天干的啥?(2019.3)
- NVLink技术及影响解析
- SpringCloud学习--微服务架构