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中显示格式化的用户输入
Oct 09 PHP
Linux下进行MYSQL编程时插入中文乱码的解决方案
Mar 15 PHP
PHP Document 代码注释规范
Apr 13 PHP
PHP连接SQLServer2005 的问题解决方法
Jul 19 PHP
php下网站防IP攻击代码,超级实用
Oct 24 PHP
8个出色的WordPress SEO插件收集
Feb 26 PHP
php生成二维码时出现中文乱码的解决方法
Dec 18 PHP
PHP计算指定日期所在周的开始和结束日期的方法
Mar 24 PHP
php 一维数组的循环遍历实现代码
Apr 10 PHP
阿里云Win2016安装Apache和PHP环境图文教程
Mar 11 PHP
PHP常量define和const的区别详解
May 18 PHP
php操作redis命令及代码实例大全
Nov 19 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
《超神学院》霸气归来, 天使彦上演维多利亚的秘密
2020/03/02 国漫
PHP 和 XML: 使用expat函数(二)
2006/10/09 PHP
基于Windows下Apache PHP5.3.1安装教程
2010/01/08 PHP
php debug 安装技巧
2011/04/30 PHP
Yii数据库缓存实例分析
2016/03/29 PHP
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
2016/12/14 PHP
JavaScript中的Window窗口对象
2008/01/16 Javascript
修改js Calendar日历控件 兼容IE9/谷歌/火狐
2013/01/04 Javascript
使用POST方式弹出窗口的两种方法示例介绍
2014/01/29 Javascript
jQuery获取节点和子节点文本的方法
2014/07/22 Javascript
jQuery固定浮动侧边栏实现思路及代码
2014/09/28 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
2015/08/24 Javascript
jquery+ajax实现注册实时验证实例详解
2015/12/08 Javascript
基于 Node.js 实现前后端分离
2016/04/23 Javascript
基于iscroll.js实现下拉刷新和上拉加载效果
2016/11/28 Javascript
angular双向绑定模拟探索
2016/12/26 Javascript
Node.js中Bootstrap-table的两种分页的实现方法
2017/09/18 Javascript
vue弹窗组件的实现示例代码
2018/09/10 Javascript
详解如何使用koa实现socket.io官网的例子
2018/11/04 Javascript
jQuery无冲突模式详解
2019/01/17 jQuery
Python基于列表list实现的CRUD操作功能示例
2018/01/05 Python
python语言基本语句用法总结
2019/06/11 Python
Django使用中间键实现csrf认证详解
2019/07/22 Python
keras模型保存为tensorflow的二进制模型方式
2020/05/25 Python
termux中matplotlib无法显示中文问题的解决方法
2021/01/11 Python
Coach澳大利亚官方网站:美国著名时尚奢侈品牌
2017/05/24 全球购物
Qoo10台湾站:亚洲领先的在线市场
2018/05/15 全球购物
奥地利智能家居和智能生活网上商店:tink.at
2019/10/07 全球购物
成功的酒店创业计划书
2013/12/27 职场文书
医学专业毕业生推荐信
2014/07/12 职场文书
党员对照检查材料整改措施思想汇报
2014/09/26 职场文书
毕业生评语大全
2015/01/04 职场文书
2015年煤矿工作总结
2015/04/28 职场文书
大学生逃课检讨书
2015/05/04 职场文书
导游词之云南-元阳梯田
2019/10/08 职场文书