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基础知识:函数基础知识
Dec 13 PHP
保存到桌面、设为桌面且带图标的PHP代码
Nov 19 PHP
php版小黄鸡simsimi聊天机器人接口分享
Jan 26 PHP
PHP中isset()和unset()函数的用法小结
Mar 11 PHP
PHP防范SQL注入的具体方法详解(测试通过)
May 09 PHP
php将数组转换成csv格式文件输出的方法
Mar 14 PHP
php中使用key,value,current,next和prev函数遍历数组的方法
Mar 17 PHP
PHP实现过滤掉非汉字字符只保留中文字符
Jun 04 PHP
关于Laravel Route重定向的一个注意点
Jan 16 PHP
Laravel框架在本地虚拟机快速安装的方法详解
Jun 11 PHP
php使用lua+redis实现限流,计数器模式,令牌桶模式
Apr 04 PHP
PHP设计模式之命令模式示例详解
Dec 20 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
比较discuz和ecshop的截取字符串函数php版
2012/09/03 PHP
分享十款最出色的PHP安全开发库中文详细介绍
2015/03/22 PHP
php解析字符串里所有URL地址的方法
2015/04/03 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
基于Jquery的简单图片切换效果
2011/01/06 Javascript
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
2012/04/20 Javascript
jQuery实现类似标签风格的导航菜单效果代码
2015/08/25 Javascript
jquery京东商城双11焦点图多图广告特效代码分享
2015/09/06 Javascript
javascript实现添加附件功能的方法
2015/11/18 Javascript
基于javascript制作微信聊天面板
2020/08/09 Javascript
bootstrap与Jquery UI 按钮样式冲突的解决办法
2016/09/23 Javascript
深入理解Vue 的条件渲染和列表渲染
2017/09/01 Javascript
解决npm管理员身份install时出现权限的问题
2018/03/16 Javascript
js合并两个数组生成合并后的key:value数组
2018/05/09 Javascript
详解基于Vue,Nginx的前后端不分离部署教程
2018/12/04 Javascript
jquery 遍历hash操作示例【基于ajax交互】
2019/10/12 jQuery
node.js使用http模块创建服务器和客户端完整示例
2020/02/10 Javascript
ES6中new Function()语法及应用实例分析
2020/02/19 Javascript
[01:55]2014DOTA2国际邀请赛快报:国土生病 紧急去医院治疗
2014/07/10 DOTA
详谈python read readline readlines的区别
2017/09/22 Python
Python实现希尔排序算法的原理与用法实例分析
2017/11/23 Python
Python3.4 tkinter,PIL图片转换
2018/06/21 Python
Python3 SSH远程连接服务器的方法示例
2018/12/29 Python
python 列表中[ ]中冒号‘:’的作用
2019/04/30 Python
python 模拟创建seafile 目录操作示例
2019/09/26 Python
python根据文本生成词云图代码实例
2019/11/15 Python
Ubuntu下Python+Flask分分钟搭建自己的服务器教程
2019/11/19 Python
南非最受欢迎的时尚品牌:MRP
2016/09/18 全球购物
公务员转正鉴定材料
2014/02/11 职场文书
《他得的红圈圈最多》教学反思
2014/04/24 职场文书
关于青春的演讲稿
2014/05/05 职场文书
2014年财务工作总结范文
2014/11/11 职场文书
行政助理岗位职责范本
2015/04/11 职场文书
大学感恩节活动总结
2015/05/05 职场文书
《7的乘法口诀》教学反思
2016/02/18 职场文书
小学语文教师竞聘演讲稿范文
2019/08/09 职场文书