laravel框架中路由设置,路由参数和路由命名实例分析


Posted in PHP onNovember 23, 2019

本文实例讲述了laravel框架中路由设置,路由参数和路由命名。分享给大家供大家参考,具体如下:

laravel中必须先配置路由,才能使用。不像tp中不配置也能使用,因为tp可以通过pathinfo进行自动解析。

一、简单的路由设置

我们一般在routes/web.php文件中配置网页端路由。

//参数一,表示uri路径
//参数二,闭包函数,处理响应
Route::get('/test', function () {
  return '测试';
});

二、路由方法,处理特定http请求方式

Route::get('/', function () {});
Route::post('/', function () {});
Route::delete('/', function () {});

也可以通过Route::any()捕获任意请求方式

Route::any('/', function () {});

也可以通过Route::match()处理指定的请求方式

Route::match(['get', 'post'], '/', function () {});

三、将路由映射到控制器方法

Route::get('/hello', 'HelloController@index');

将/hello的处理映射到app/Http/Controllers/HelloController.php的index方法。

如果我们在Controllers目录下创建了多层目录,可以通过(目录\...\控制器@方法)的方式:

Route::get('/hello', 'Hello\HelloController@index');

四、路由参数

有些时候需要路由上传递参数,只需在路由路径中标识即可。

Route::get('/list/{page}', function ($page) {
  return "当前页数{$page}";
});

不过上面的page参数是必传的,如果没传将会报错找不到。这时候可以在标识后面加个?,表示可选,并给函数参数一个默认值。

Route::get('/list/{page?}', function ($page = 1) {
  return "当前页数{$page}";
});

我们也可以为路由参数设置正则规则,保证参数的正确性

Route::get('/search/{key?}/{page?}', function ($key = '', $page = 1) {
  return "搜索 {$key} 页数 {$page}";
})->where(['key' => '[A-Za-z]+', 'page' => '[0-9]+']);

获取路由参数

Route::get('/search/{key?}/{page?}', function (Request $req) {
  //获取单个路由参数
  var_dump($req::route('key'));
  //获取所有路由参数
  var_dump($req::route()->parameters());
});

通过Request::all()获取普通参数,类似?a=a&b=b&c=c

Route::get('/search/{key?}/{page?}', function (Request $req, $key = '', $page = 1) {
  var_dump($key);
  var_dump($page);
  var_dump($req::all());
});

五、路由命名

我们可以给路由设置一个名字,方便在视图中使用

Route::get('/list/{page?}', function ($page = 1) {
  return view('list', ['page' => $page]);
})->name('list.page');

我们在resources/views/list.blade.php视图中,通过 route() 方法来显示该路由地址

{{ route('list.page', ['page' => $page]) }}

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

PHP 相关文章推荐
福利彩票幸运号码自动生成器
Oct 09 PHP
实用函数10
Nov 08 PHP
php获取网页内容方法总结
Dec 04 PHP
php 结果集的分页实现代码
Mar 10 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
Jun 20 PHP
php获取数组长度的方法(有实例)
Oct 27 PHP
浅谈php安全性需要注意的几点事项
Jul 17 PHP
PHP基于数组实现的分页函数实例
Aug 20 PHP
详解PHP错误日志的获取方法
Jul 20 PHP
PHP Web木马扫描器代码分享
Sep 06 PHP
PHP使用递归算法无限遍历数组示例
Jan 13 PHP
Laravel中错误与异常处理的用法示例
Sep 16 PHP
laravel框架创建授权策略实例分析
Nov 22 #PHP
laravel框架语言包拓展实现方法分析
Nov 22 #PHP
laravel框架邮箱认证实现方法详解
Nov 22 #PHP
laravel 框架结合关联查询 when()用法分析
Nov 22 #PHP
PHP实现微信提现功能(微信商城)
Nov 21 #PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
Nov 21 #PHP
PHP框架实现WebSocket在线聊天通讯系统
Nov 21 #PHP
You might like
PHP4实际应用经验篇(3)
2006/10/09 PHP
7个鲜为人知却非常实用的PHP函数
2015/07/01 PHP
PHP环境中Memcache的安装和使用
2015/11/05 PHP
微信公众号开发之通过接口删除菜单
2017/02/20 PHP
javascript里的条件判断
2007/02/27 Javascript
Javascript 颜色渐变效果的实现代码
2013/10/01 Javascript
jQuery中:not选择器用法实例
2014/12/30 Javascript
究竟什么是Node.js?Node.js有什么好处?
2015/05/29 Javascript
javascript连续赋值问题
2015/07/08 Javascript
js中 javascript:void(0) 用法详解
2015/08/11 Javascript
详解Node.js项目APM监控之New Relic
2017/05/12 Javascript
js字符串与Unicode编码互相转换
2017/05/17 Javascript
JavaScript定时器setTimeout()和setInterval()详解
2017/08/18 Javascript
基于Bootstrap表单验证功能
2017/11/17 Javascript
微信小程序form表单组件示例代码
2018/07/15 Javascript
JS构造一个html文本内容成文件流形式发送到后台
2018/07/31 Javascript
微信小程序解除10个请求并发限制
2018/12/18 Javascript
vue-cli3配置favicon.ico和title的流程
2020/10/27 Javascript
python 打印对象的所有属性值的方法
2016/09/11 Python
基于python元祖与字典与集合的粗浅认识
2017/08/23 Python
Python文件和流(实例讲解)
2017/09/12 Python
Mac中Python 3环境下安装scrapy的方法教程
2017/10/26 Python
在Python中将函数作为另一个函数的参数传入并调用的方法
2019/01/22 Python
python 猴子补丁(monkey patch)
2019/06/26 Python
python变量的存储原理详解
2019/07/10 Python
使用python批量修改文件名的方法(视频合并时)
2020/03/24 Python
python 进程间数据共享multiProcess.Manger实现解析
2019/09/23 Python
windows下Pycharm安装opencv的多种方法
2020/03/05 Python
python小白学习包管理器pip安装
2020/06/09 Python
美国美食礼品篮网站:Gourmet Gift Baskets
2019/12/15 全球购物
日本最大的购物网站乐天市场国际版:Rakuten Global Market(支持中文)
2020/02/03 全球购物
师范应届生求职信
2013/11/15 职场文书
企业行政文员岗位职责
2013/12/03 职场文书
超市主管竞聘书
2015/09/15 职场文书
解决pytorch读取自制数据集出现过的问题
2021/05/31 Python
Netflix《海贼王》真人版剧集多张片场照曝光
2022/04/04 日漫