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 相关文章推荐
phpinfo 系统查看参数函数代码
Jun 05 PHP
PHP+MySQL 手工注入语句大全 推荐
Oct 30 PHP
smarty中先strip_tags过滤html标签后truncate截取文章运用
Oct 25 PHP
php中处理mysql_fetch_assoc返回来的数组 不用foreach----echo
May 04 PHP
关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解
Jun 24 PHP
thinkphp中memcache的用法实例
Nov 29 PHP
Yii多表联合查询操作详解
Jun 02 PHP
php array_values 返回数组的值实例详解
Nov 17 PHP
PHP微信分享开发详解
Jan 14 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
Sep 22 PHP
PHP实现用session来实现记录用户登陆信息
Oct 15 PHP
PHP filter_var() 函数, 验证判断EMAIL,URL等
Mar 09 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 MsSql server时遇到的中文编码问题
2009/06/11 PHP
php中的字符编码转换函数用法示例
2014/10/20 PHP
PHP简单实现DES加密解密的方法
2016/07/12 PHP
javascript设计模式 接口介绍
2012/07/24 Javascript
javascript显示中文日期的方法
2015/06/18 Javascript
使用JQuery实现的分页插件分享
2015/11/05 Javascript
跟我学习javascript的异步脚本加载
2015/11/20 Javascript
JS模拟按钮点击功能的方法
2015/12/22 Javascript
基于jQuery实现收缩展开功能
2016/03/18 Javascript
JavaScript基于原型链的继承
2016/06/22 Javascript
JQuery EasyUI学习教程之datagrid 添加、修改、删除操作
2016/07/09 Javascript
jQuery Ajax使用FormData对象上传文件的方法
2016/09/07 Javascript
Jquery Easyui日历组件Calender使用详解(23)
2016/12/18 Javascript
nodejs入门教程三:调用内部和外部方法示例
2017/04/24 NodeJs
详解AngularJS2 Http服务
2017/06/26 Javascript
vue toggle做一个点击切换class(实例讲解)
2018/03/13 Javascript
Vue中登录验证成功后保存token,并每次请求携带并验证token操作
2020/09/08 Javascript
[49:15]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第二场 1月19日
2021/03/11 DOTA
python 实现图片旋转 上下左右 180度旋转的示例
2019/01/24 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
2020/11/30 Python
css3新单位vw、vh的使用教程
2018/03/23 HTML / CSS
详解html5 canvas常用api总结(二)--绘图API
2016/12/14 HTML / CSS
英国亚马逊官方网站:Amazon.co.uk
2019/08/09 全球购物
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
初中物理教学反思
2014/01/14 职场文书
高三政治教学反思
2014/02/06 职场文书
《梅花魂》教学反思
2014/04/30 职场文书
导师工作推荐信范文
2014/05/17 职场文书
乔丹名人堂演讲稿
2014/05/24 职场文书
工商局副局长个人对照检查材料
2014/09/25 职场文书
教师自我剖析材料
2014/09/29 职场文书
出国留学英文自荐信
2015/03/25 职场文书
离婚财产分割协议书
2015/08/11 职场文书
创业计划书之酒厂
2019/10/14 职场文书
oracle覆盖导入dmp文件的2种方法
2021/05/21 Oracle
HTML基础详解(上)
2021/10/16 HTML / CSS