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 相关文章推荐
PHP4实际应用经验篇(9)
Oct 09 PHP
PHPwind整合最土系统用户同步登录实现方法
Dec 08 PHP
163的邮件用phpmailer发送(实例详解)
Jun 24 PHP
PHP四舍五入精确小数位及取整
Jan 14 PHP
php对称加密算法示例
May 07 PHP
ThinkPHP中RBAC类的四种用法分析
Nov 24 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
Aug 29 PHP
弹出模态框modal的实现方法及实例
Sep 19 PHP
php curl优化下载微信头像的方法总结
Sep 07 PHP
PHP获取远程http或ftp文件的md5值的方法
Apr 15 PHP
php 多个变量指向同一个引用($b = &$a)用法分析
Nov 13 PHP
PHP标准库 (SPL)――Countable用法示例
Jun 05 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文件操作的详细诠释
2013/06/21 PHP
实测在class的function中include的文件中非php的global全局环境
2013/07/15 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(二)
2014/06/23 PHP
Yii2 rbac权限控制操作步骤实例教程
2016/04/29 PHP
PHP从二维数组得到N层分类树的实现代码
2016/10/11 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
2019/05/27 PHP
探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行
2013/07/09 Javascript
JS模拟自动点击的简单实例
2013/08/08 Javascript
Html5的placeholder属性(IE兼容)实现代码
2014/08/30 Javascript
JavaScript中的变量作用域介绍
2014/12/31 Javascript
轻松实现javascript数据双向绑定
2015/11/11 Javascript
js实现前端分页页码管理
2017/01/06 Javascript
Javascript 两种刷新方法以及区别和适用范围
2017/01/17 Javascript
JavaScript对象引用与赋值实例详解
2017/03/15 Javascript
详谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/25 Javascript
微信小程序之绑定点击事件实例详解
2017/07/07 Javascript
js学习总结_轮播图之渐隐渐现版(实例讲解)
2017/07/17 Javascript
vue.js 实现点击展开收起动画效果
2018/07/07 Javascript
JS实现可针对算术表达式求值的计算器功能示例
2018/09/04 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
2019/05/08 Javascript
vue 路由子组件created和mounted不起作用的解决方法
2019/11/05 Javascript
vue 限制input只能输入正数的操作
2020/08/05 Javascript
NodeJS模块Buffer原理及使用方法解析
2020/11/11 NodeJs
Python转换时间的图文方法
2019/07/01 Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
2020/05/11 Python
python算的上脚本语言吗
2020/06/22 Python
virtualenv介绍及简明教程
2020/06/23 Python
反邪教标语
2014/06/23 职场文书
环保志愿者活动总结
2014/06/27 职场文书
2014乡镇干部纪律作风整顿思想汇报
2014/09/13 职场文书
领导班子三严三实对照检查材料
2014/09/25 职场文书
2015年发展党员工作总结报告
2015/03/31 职场文书
主持人大赛开场白
2015/05/29 职场文书
党支部意见范文
2015/06/02 职场文书
python获取字符串中的email
2022/03/31 Python
python对文档中元素删除,替换操作
2022/04/02 Python