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 相关文章推荐
PHP 开发环境配置(Zend Studio)
Apr 28 PHP
php空间不支持socket但支持curl时recaptcha的用法
Nov 07 PHP
phpmyadmin3 安装配置图解教程
Mar 29 PHP
PHP开源开发框架ZendFramework使用中常见问题说明及解决方案
Jun 12 PHP
php+ajax实现图片文件上传功能实例
Jun 17 PHP
PHP中变量引用与变量销毁机制分析
Nov 15 PHP
php截取字符串函数分享
Feb 02 PHP
简单理解PHP的面向对象编程方式
May 17 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
Sep 11 PHP
PHP去除字符串最后一个字符的三种方法实例
Mar 01 PHP
PHP使用imagick扩展实现合并图像的方法
Apr 25 PHP
详细分析PHP7与PHP5区别
Jun 26 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
用PHP将网址字符串转换成超链接(网址或email)
2010/05/25 PHP
一份老外写的XMLHttpRequest代码多浏览器支持兼容性
2007/01/11 Javascript
js中if语句的几种优化代码写法
2011/03/12 Javascript
jQuery获取Select选择的Text和Value(详细汇总)
2013/01/25 Javascript
关于JS判断图片是否加载完成且获取图片宽度的方法
2013/04/09 Javascript
用jquery统计子菜单的条数示例代码
2013/10/18 Javascript
javascript正则表达式参数/g与/i及/gi的使用指南
2014/08/27 Javascript
js实现iframe框架取值的方法(兼容IE,firefox,chrome等)
2015/11/26 Javascript
win7下安装配置node.js+express开发环境
2015/12/06 Javascript
学习使用grunt来打包JavaScript和CSS程序的教程
2016/01/04 Javascript
ECharts仪表盘实例代码(附源码下载)
2016/02/18 Javascript
Vue.js绑定HTML class数组语法错误的原因分析
2016/10/19 Javascript
JavaScript常见的五种数组去重的方式
2016/12/15 Javascript
angularjs中回车键触发某一事件的方法
2017/04/24 Javascript
浅谈JsonObject中的key-value数据解析排序问题
2017/12/06 Javascript
解决vue keep-alive 数据更新的问题
2018/09/21 Javascript
微信小程序实现评论功能
2018/11/28 Javascript
在vue中使用防抖函数组件操作
2020/07/26 Javascript
uin-app+mockjs实现本地数据模拟
2020/08/26 Javascript
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
为Python的Tornado框架配置使用Jinja2模板引擎的方法
2016/06/30 Python
关于numpy中np.nonzero()函数用法的详解
2017/02/07 Python
利用python实现xml与数据库读取转换的方法
2017/06/17 Python
Python判断文件和字符串编码类型的实例
2017/12/21 Python
Python考拉兹猜想输出序列代码实践
2019/07/05 Python
利用python实现AR教程
2019/11/20 Python
python 实现生成均匀分布的点
2019/12/05 Python
python递归调用中的坑:打印有值, 返回却None
2020/03/16 Python
Guess欧洲官网:美国服饰品牌
2019/08/06 全球购物
俄罗斯宠物用品网上商店:ZooMag
2019/12/12 全球购物
重写子类方法时,抛出异常的书写注意事项
2015/10/17 面试题
创业大赛策划书
2014/03/01 职场文书
2015年信贷员工作总结
2015/04/28 职场文书
故意杀人罪辩护词
2015/05/21 职场文书
2016父亲节感恩话语
2015/12/09 职场文书
Python 的演示平台支持 WSGI 接口的应用
2022/04/20 Python