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
php 获得汉字拼音首字母的函数
Aug 01 PHP
Cakephp 执行主要流程
Mar 24 PHP
PHP读取ACCESS数据到MYSQL的代码
May 11 PHP
php 解决旧系统 查出所有数据分页的类
Aug 27 PHP
php curl获取网页内容(IPV6下超时)的解决办法
Jul 16 PHP
php加密解密函数authcode的用法详细解析
Oct 28 PHP
给WordPress的编辑后台添加提示框的代码实例分享
Dec 25 PHP
PHP+MySql+jQuery实现的"顶"和"踩"投票功能
May 21 PHP
万能的php分页类
Jul 06 PHP
PHP7如何开启Opcode打造强悍性能详解
May 11 PHP
php多进程中的阻塞与非阻塞操作实例分析
Mar 04 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利用反射实现插件机制的方法
2015/03/14 PHP
Yii列表定义与使用分页方法小结(3种方法)
2016/07/15 PHP
JS模拟面向对象全解(一、类型及传递)
2011/07/13 Javascript
multiSteps 基于Jquery的多步骤滑动切换插件
2011/07/22 Javascript
jquery属性选择器not has怎么写 行悬停高亮显示
2013/11/13 Javascript
IE与FireFox的JavaScript兼容问题解决办法
2013/12/31 Javascript
angularjs中的e2e测试实例
2014/12/06 Javascript
javascript操作字符串的原生方法
2014/12/22 Javascript
常用的Javascript设计模式小结
2015/12/09 Javascript
利用jQuery中的ajax分页实现代码
2016/02/25 Javascript
基于Jquery插件Uploadify实现实时显示进度条上传图片
2020/03/26 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
2017/09/03 Javascript
微信小程序websocket实现聊天功能
2020/03/30 Javascript
JavaScript实现简单随机点名器
2019/11/21 Javascript
python绘制简单彩虹图
2018/11/19 Python
Python输出\u编码将其转换成中文的实例
2018/12/15 Python
Python实现深度遍历和广度遍历的方法
2019/01/22 Python
Python 中包/模块的 `import` 操作代码
2019/04/22 Python
Python列表对象实现原理详解
2019/07/01 Python
python中tkinter的应用:修改字体的实例讲解
2019/07/17 Python
在tensorflow下利用plt画论文中loss,acc等曲线图实例
2020/06/15 Python
Python结合Window计划任务监测邮件的示例代码
2020/08/05 Python
Django中和时区相关的安全问题详解
2020/10/12 Python
python 使用tkinter+you-get实现视频下载器
2020/11/17 Python
泰国演唱会订票网站:StubHub泰国
2018/02/26 全球购物
美国名牌手表折扣网站:Jomashop
2020/05/22 全球购物
体育教育毕业生自荐信
2013/11/21 职场文书
教师党员公开承诺书
2014/03/25 职场文书
创先争优承诺书范文
2014/03/31 职场文书
土地转让协议书
2014/04/15 职场文书
初一学生评语大全
2014/04/24 职场文书
房产授权委托书范本
2014/09/22 职场文书
小学假期安全广播稿
2014/09/28 职场文书
大学生英文求职信范文
2015/03/19 职场文书
简爱电影观后感
2015/06/10 职场文书
Python爬虫实战之爬取京东商品数据并实实现数据可视化
2021/06/07 Python