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
几种显示数据的方法的比较
Oct 09 PHP
关于Intype一些小问题的解决办法
Mar 28 PHP
php递归创建和删除文件夹的代码小结
Apr 13 PHP
PHP下使用CURL方式POST数据至API接口的代码
Feb 14 PHP
Session服务器配置指南与使用经验的深入解析
Jun 17 PHP
PHP实现显示照片exif信息的方法
Jul 11 PHP
php中使用sftp教程
Mar 30 PHP
[原创]php实现子字符串位置相互对调互换的方法
Jun 02 PHP
PHP编程之设置apache虚拟目录
Jul 08 PHP
基于thinkPHP实现的微信自定义分享功能示例
Sep 23 PHP
PHP的mysqli_rollback()函数讲解
Jan 23 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学习笔记之二 php入门知识
2011/01/12 PHP
浅谈PHP解析URL函数parse_url和parse_str
2014/11/11 PHP
PHP QRCODE生成彩色二维码的方法
2016/05/19 PHP
学习YUI.Ext基础第一天
2007/03/10 Javascript
javascript css float属性的特殊写法
2008/11/13 Javascript
setInterval,setTimeout与jquery混用的问题
2013/04/08 Javascript
connect中间件session、cookie的使用方法分享
2014/06/17 Javascript
jquery获取多个checkbox的值异步提交给php
2015/07/07 Javascript
JS中生成随机数的用法及相关函数
2016/01/09 Javascript
详解javascript实现瀑布流列式布局
2016/01/29 Javascript
jquery显示隐藏元素的实现代码
2016/05/19 Javascript
JS实现类似51job上的地区选择效果示例
2016/11/17 Javascript
js仿微博动态栏功能
2017/02/22 Javascript
JavaScript变量作用域_动力节点Java学院整理
2017/06/27 Javascript
jQuery实现导航栏头部菜单项点击后变换颜色的方法
2017/07/19 jQuery
使用canvas进行图像编辑的实例
2017/08/29 Javascript
微信小程序实现图片上传、删除和预览功能的方法
2017/12/18 Javascript
node+express框架中连接使用mysql(经验总结)
2018/11/10 Javascript
微信小程序获取地理位置及经纬度授权代码实例
2019/09/18 Javascript
JS使用正则表达式提交页面验证的代码
2019/10/16 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
JS图片懒加载的优点及实现原理
2020/01/10 Javascript
如何使用Jquery动态生成二级选项列表
2020/02/06 jQuery
python计算N天之后日期的方法
2015/03/31 Python
Python2/3中urllib库的一些常见用法
2017/12/19 Python
Django自定义用户认证示例详解
2018/03/14 Python
利用 Flask 动态展示 Pyecharts 图表数据方法小结
2019/09/04 Python
如何基于线程池提升request模块效率
2020/04/18 Python
如何利用pycharm进行代码更新比较
2020/11/04 Python
python实现定时发送邮件
2020/12/23 Python
库房保管员岗位职责
2014/04/07 职场文书
贷款担保申请书
2014/05/20 职场文书
领导班子奢靡之风查摆问题及整改措施
2014/09/27 职场文书
退学证明范本3篇
2014/10/29 职场文书
KTV员工管理制度
2015/08/06 职场文书
PostgreSQL逻辑复制解密原理解析
2022/09/23 PostgreSQL