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 相关文章推荐
Pain 全世界最小最简单的PHP模板引擎 (普通版)
Oct 23 PHP
php中++i 与 i++ 的区别
Aug 08 PHP
php实现的Cookies操作类实例
Sep 24 PHP
PHP移动文件指针ftell()、fseek()、rewind()函数总结
Nov 18 PHP
php中数字、字符与对象判断函数用法实例
Nov 26 PHP
Yii的CDbCriteria查询条件用法实例
Dec 04 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
Dec 19 PHP
PHP连接MYSQL数据库实例代码
Jan 20 PHP
PHP浮点数的一个常见问题
Mar 10 PHP
thinkPHP实现将excel导入到数据库中的方法
Apr 22 PHP
php脚本守护进程原理与实现方法详解
Jul 20 PHP
PHP使用glob方法遍历文件夹下所有文件的实例
Oct 17 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和MySql来与ODBC数据连接
2006/10/09 PHP
php 随机数的产生、页面跳转、件读写、文件重命名、switch语句
2009/08/07 PHP
PHP连接局域网MYSQL数据库的简单实例
2013/08/26 PHP
php异步多线程swoole用法实例
2014/11/14 PHP
php实现留言板功能
2017/03/05 PHP
js 判断文件类型并控制表单提交示例代码
2013/11/14 Javascript
js中this的用法实例分析
2015/01/10 Javascript
使用纯javascript实现放大镜效果
2015/03/18 Javascript
最精简的JavaScript实现鼠标拖动效果的方法
2015/05/11 Javascript
JavaScript实现刷新不重记的倒计时
2016/08/10 Javascript
jQuery在ie6下无法设置select选中的解决方法详解
2016/09/20 Javascript
jQuery实现 上升、下降、删除、添加一行代码
2017/03/06 Javascript
JavaScript mixin实现多继承的方法详解
2017/03/30 Javascript
详解如何去除vue项目中的#——History模式
2017/10/13 Javascript
JavaScript定义及输出螺旋矩阵的方法详解
2017/12/01 Javascript
vue中tab选项卡的实现思路
2018/11/25 Javascript
Vue.js页面中有多个input搜索框如何实现防抖操作
2019/11/04 Javascript
python实现根据窗口标题调用窗口的方法
2015/03/13 Python
使用pyecharts在jupyter notebook上绘图
2020/04/23 Python
Python2.7编程中SQLite3基本操作方法示例
2017/08/09 Python
python 读取txt中每行数据,并且保存到excel中的实例
2018/04/29 Python
python 实现在txt指定行追加文本的方法
2018/04/29 Python
Python之批量创建文件的实例讲解
2018/05/10 Python
Python中Numpy包的安装与使用方法简明教程
2018/07/03 Python
Python 将Matrix、Dict保存到文件的方法
2018/10/30 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
2019/08/06 Python
python实现机器人卡牌
2019/10/06 Python
Centos7 下安装最新的python3.8
2019/10/28 Python
python 实现简单的FTP程序
2019/12/27 Python
python代码区分大小写吗
2020/06/17 Python
英国最出名高街品牌:Forever Unique
2018/02/24 全球购物
网站创业计划书
2014/04/30 职场文书
党员教师一句话承诺
2014/05/30 职场文书
国际贸易系求职信
2014/08/09 职场文书
《画家和牧童》教学反思
2016/02/17 职场文书
2016年6.5世界环境日宣传活动总结
2016/04/01 职场文书