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 相关文章推荐
dedecms采集中可以过滤多行代码的正则表达式
Mar 17 PHP
详解PHP显示MySQL数据的三种方法
Jun 05 PHP
PHP令牌 Token改进版
Jul 18 PHP
PHP中操作ini配置文件的方法
Apr 25 PHP
使用PHP接收POST数据,解析json数据
Jun 28 PHP
php二分查找二种实现示例
Mar 12 PHP
Thinkphp使用mongodb数据库实现多条件查询方法
Jun 26 PHP
浅析ThinkPHP的模板输出功能
Jul 01 PHP
PHP file_get_contents函数读取远程数据超时的解决方法
May 13 PHP
PHP 实现的将图片转换为TXT
Oct 21 PHP
如何解决PHP使用mysql_query查询超大结果集超内存问题
Mar 14 PHP
Laravel框架自定义验证过程实例分析
Feb 01 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实现的Captcha验证码类实例
2014/09/22 PHP
php array_slice 取出数组中的一段序列实例
2016/11/04 PHP
php表单处理操作
2017/11/16 PHP
360搜索引擎自动收录php改写方案
2018/04/28 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
一个简单的JavaScript 日期计算算法
2009/09/11 Javascript
使用SyntaxHighlighter实现HTML高亮显示代码的方法
2010/02/04 Javascript
JQuery自定义事件的应用 JQuery最佳实践
2010/08/01 Javascript
两个数组去重的JS代码
2013/12/04 Javascript
xmlhttp缓存清除的2种解决方法
2013/12/13 Javascript
jQuery实现在textarea指定位置插入字符或表情的方法
2015/03/11 Javascript
js实现简洁大方的二级下拉菜单效果代码
2015/09/01 Javascript
JS实现仿腾讯微博无刷新删除微博效果代码
2015/10/16 Javascript
Jquery操作Ajax方法小结
2015/11/29 Javascript
学习javascript面向对象 理解javascript原型和原型链
2016/01/04 Javascript
深入浅析jQuery对象$.html
2016/08/22 Javascript
浅谈原生JS实现jQuery的animate()动画示例
2017/03/08 Javascript
详解vue-cli中配置sass
2017/06/21 Javascript
使用vue制作FullPage页面滚动效果
2017/08/21 Javascript
基于Vue 2.0 监听文本框内容变化及ref的使用说明介绍
2018/08/24 Javascript
JS用最简单的方法实现四舍五入
2019/08/27 Javascript
JavaScript Window浏览器对象模型原理解析
2020/05/30 Javascript
vue实现树状表格效果
2020/12/29 Vue.js
用python制作游戏外挂
2018/01/04 Python
python2.7实现爬虫网页数据
2018/05/25 Python
Python批量修改图片分辨率的实例代码
2019/07/04 Python
Django模型中字段属性choice使用说明
2020/03/30 Python
python中怎么表示空值
2020/06/19 Python
OpenCV Python实现图像指定区域裁剪
2021/03/12 Python
python 利用百度API识别图片文字(多线程版)
2020/12/14 Python
杭州时比特电子有限公司SQL
2013/08/22 面试题
毕业留言寄语大全
2014/04/10 职场文书
《会走路的树》教后反思
2014/04/19 职场文书
党员教师批评与自我批评发言稿
2014/10/15 职场文书
出生证明格式
2015/06/15 职场文书
mysql在项目中怎么选事务隔离级别
2021/05/25 MySQL