Laravel框架02:路由与控制器

news/2024/4/18 15:35:28/文章来源:https://blog.csdn.net/realoser/article/details/129216714

Laravel框架02:路由与控制器

  • 一、路由配置文件
  • 二、路由参数
  • 三、路由别名
  • 四、路由群组
  • 五、控制器概述
  • 六、控制器路由
  • 七、接收用户输入

一、路由配置文件

  • 以web网页路由文件为例:
    在这里插入图片描述
  • 默认根路由
    在这里插入图片描述
  • 路由定义格式Route::请求方式('请求的URL', 匿名函数或控制响应的方法)
    Route::get('/home', function () {return "HOME";
    });
    
  • 通过match可以实现路由响应多个HTTP请求。any实现一个路由响应所有HTTP请求。
    Route::match(['get', 'post'], '/match', function () {return "match实现一个路由响应多个HTTP请求";
    });Route::any('/any', function () {return "any实现一个路由响应所有HTTP请求";
    });
    

二、路由参数

  1. 必选参数

    • 必选参数的传递通过路由地址中的{参数名}的形式进行传递。
    Route::any('/must/{id}', function ($id) {echo "当前用户ID是{$id}";
    });
    
  2. 可选参数

    • 可选参数的传递通过路由地址中的{参数名?}的形式进行传递。
    Route::any('/optional/{id?}', function ($id = null) {echo "当前用户ID是{$id}";
    });
    
  3. 问号传参

    • 除了定义路由的方式传递路由参数,还可以通过?形式传递参数
    http://study.com/mark?id=12345Route::any('/mark', function () {echo "当前用户ID是{$_GET['id']}";
    });
    

三、路由别名

  • 在路由定义的时候,给路由起一个名字。

    Route::any('/mark', function () {echo "当前用户ID是{$_GET['id']}:<br>" . route('alias');
    })->name("alias");
    
  • 调用该路由:route("alias"),返回该路由的完整地址。
    在这里插入图片描述

  • 查看系统已经有的路由:php artisan route:list
    在这里插入图片描述

四、路由群组

  • 使用 group 对路由进行分组。
  • 使用 prefix 属性指定路由前缀。
  • 语法:Route::group(公共属性数组, 回调函数);
Route::group(['prefix' => 'admin'], function () {Route::get('test1', function () {return 'test1';});Route::get('test2', function () {return 'test2';});Route::get('test3', function () {return 'test3';});
});

在这里插入图片描述

五、控制器概述

  • 控制器文件夹位于:app/Http/Controllers
  • 控制器命名方式:大驼峰+Controller.php
  • 通过artisan命令行自动生成控制器php artisan make:controller 控制器名
    在这里插入图片描述

六、控制器路由

  • 控制器路由:即使用路由规则调用控制器下的方法。

  • 格式:Route::请求方法(路由表达式, 控制器类名@方法名)

    # 路由设定
    Route::get('/home/test/info', 'TestController@info');# 控制器
    class TestController extends Controller
    {public function info(){return phpinfo();}
    }
    
  • 创建分目录管理的控制器,只需要加上目录名称

    php .\artisan make:controller Admin/IndexController
    php .\artisan make:controller Home/IndexController
    

    在这里插入图片描述

# 路由设定
Route::get('/home/index/index', 'home\IndexController@index');
Route::get('/admin/index/index', 'Admin\IndexController@index');# 分目录管理控制器
class IndexController extends Controller
{// 测试Admin分组的Index方法public function index(){return "这是Admin分组下的index方法";}
}

七、接收用户输入

  • Facades:“门面”的思想。门面是介于一个类的实例化与没有实例化中间的一个状态。其实是类的一个接口实现。
  • 在Laravel中如果需要使用facades,可以在config/app.php中定义别名。
  • 在Laravel中友好输出函数:dd();
  • 接收用户输入的类:Illuminate\Http\Request。
<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;class TestController extends Controller
{public function index(Request $request){$request->all();$request->get('id');$request->only(['id', 'name']);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_74391.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CV学习笔记-MobileNet

MobileNet 文章目录MobileNet1. MobileNet概述2. 深度可分离卷积&#xff08;depthwise separable convolution&#xff09;2.1 深度可分离卷积通俗理解2.2 深度可分离卷积对于参数的优化3. MobileNet网络结构4. 代码实现4.1 卷积块4.2 深度可分离卷积块4.3 MobileNet定义4.4 完…

一步步教你电脑变成服务器,tomcat的花生壳设置(原创)

1&#xff0c;首先你去https://console.oray.com/这网站注册个帐号&#xff0c;如果注册成功它会送你一个免费域名&#xff0c;当然不记得也没关系&#xff0c;你记住你注册的 帐号跟密码&#xff0c;然后下载它的软件&#xff08;花生壳动态域名6.0正式版&#xff09;有xp跟li…

java基础系列(六) sleep()和wait() 区别

一.前言 关于并发编程这块, 线程的一些基础知识我们得搞明白, 本篇文章来说一下这两个方法的区别,对Android中的HandlerThread机制原理可以有更深的理解, HandlerThread源码理解,请查看笔者的这篇博客: HandlerThread源码理解_handlerthread 源码_broadview_java的博客-CSDN博…

安装kibana 报错/访问不了

安装kibana 报错1&#xff0c;elasticsearch.yaml 和kibana.yaml 配置问题2&#xff0c;elasticsearch 和kibana版本不一致3&#xff0c;索引问题1&#xff0c;elasticsearch.yaml 和kibana.yaml 配置问题 我的RPM安装的&#xff0c;配置文件都在/etc/ vim /etc/elasticsearc…

【Python基础】类

面向对象编程 面向对象编程是最有效的软件编写方法之一。面向对象是一种对现实世界理解和抽象的方法&#xff0c;是计算机编程技术发展到一定阶段后的产物。 面向对象和面向过程的区别 比如我想吃西红柿炒蛋&#xff0c;怎么运用面向过程的方法来解决这个问题呢&#xff1f;…

《高性能MySQL》——MySQL基准测试(笔记)

文章目录二、MySQL基准测试2.1 为什么需要基准测试2.2 基准测试的策略2.2.1 测试何种指标2.3 基准测试方法2.3.1设计和规划基准测试2.3.2 基准测试应该运行多长时间2.3.3 获取系统性能和状态2.3.4 获得准确的测试结果2.3.5 运行基准测试并分析结果2.3.6 绘图的重要性2.4 基准测…

yii-shopwind商城多数页面报错,修改mysql一个配置就解决!

解决办法打开mysql配置文件&#xff0c;在[mysqld]下添加如下一行&#xff1a;sql_modeNO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES成功解决!还以为是网站的代码问题, 惊讶到我了. 开源网站下载下来就报错 多不可思议. 终于是配置的问题!加油报错信息如下是其中一个界面的&…

[MySQL]MySQL数据类型

文章目录数据类型分类数值类型tinyint类型bit类型float类型decimal类型字符串类型char类型varchar类型char和varchar对比日期和时间类型enum和set类型数据类型分类 MySQL中&#xff0c;支持各种各样的类型&#xff0c;比如表示数值的整型浮点型&#xff0c;文本、二进制类型、…

RK3568镜像的拆包和打包

文章目录 前言一、window上分包和打包分包打包二、Linux上分包和打包分包打包总结前言 本文记录在win10上利用瑞芯微提供的工具进行分包和打包,同样也有Linux教程 提示:以下是本篇文章正文内容,下面案例可供参考 一、window上分包和打包 分包 window下一般直接利用工具即…

[oeasy]python0094_视频游戏_双人网球_pong_atari_mos_6502_雅达利_米洛华

编码进化 回忆上次内容 上次 我们回顾了 微软之前的 比尔盖茨和保罗艾伦 mits 迎来的 是帮手还是隐患&#xff1f; intel-8080 遇到了 mos-6502 底层硬件 驱动 游戏行业进化 不光是扑克牌和柏青哥了出现了双人网球 不过 目前的游戏 PDP-1 上的《太空大战》Donner Model 30 上…

信号类型(雷达)——脉冲雷达(三)

系列文章目录 《信号类型&#xff08;雷达通信&#xff09;》 《信号类型&#xff08;雷达&#xff09;——雷达波形认识&#xff08;一&#xff09;》 《信号类型&#xff08;雷达&#xff09;——连续波雷达&#xff08;二&#xff09;》 文章目录 前言 一、相参雷达 1…

从中国文化看面试挑人标准

文章目录标准一、面相1. 1 四白眼1.2 浓眉二、讲话2.1 言多与气虚总结本文结合中国面相&#xff0c;是个概率性问题&#xff0c;对于个体无效。 标准 正直&#xff0c;三观正&#xff0c;沟通好&#xff0c;技术。从概率上讲&#xff1a; 正直且三观正的人----有恒心&#x…

Android OTA 相关工具(四) 查看 payload 文件信息

文章目录1. payload_info.py 的使用1. 环境2. 帮助信息2. 查看 payload 文件信息1. 不带选项查看2. 使用 stats 选项查看3. 使用 signagures 选项4. 使用 list_ops 选项查看3. 其它一直以来&#xff0c;很多人都表达过很想去研究一下 Android OTA 的 payload 文件&#xff0c;看…

Guna Charts WinForm 1.0.8 Crack

Guna Charts 16 图表 在 16 种不同的图表类型中可视化您的数据。 Guna Charts 反应灵敏 轻松响应屏幕尺寸的变化。 Guna Charts 实时图表 创建实时数据仪表板现在非常容易。 Guna Charts 混合图表类型 混合多种图表类型&#xff0c;例如条形图和折线图/面积图。 Guna Charts…

26 openEuler管理网络-使用ip命令配置网络

文章目录26 openEuler管理网络-使用ip命令配置网络26.1 配置IP地址26.1.1 配置静态地址26.1.2 配置多个地址26.2 配置静态路由26 openEuler管理网络-使用ip命令配置网络 说明&#xff1a; 使用ip命令配置的网络配置可以立即生效但系统重启后配置会丢失。 26.1 配置IP地址 使用…

基于stm32电梯管理系统设计

基于stm32电梯管理系统设计这里记录一下以前自己做的嵌入式课程设计&#xff0c;报告中的图片和文字太多了&#xff0c;全部一个一个把搬过来太麻烦了,需要完整文本和代码自行q我963160156&#xff0c;也可在微信公众号 *高级嵌入式软件* 里回复 *电梯* 查看完整版文章摘要关键…

Redis 之企业级解决方案

文章目录一、缓存预热二、缓存雪崩三、缓存击穿四、缓存穿透五、性能指标监控5.1 监控指标5.2 监控方式&#x1f34c;benchmark&#x1f34c;monitor&#x1f34c;slowlog提示&#xff1a;以下是本篇文章正文内容&#xff0c;Redis系列学习将会持续更新 一、缓存预热 1.1 现象…

ctf pwn基础-4

今天是学pwn的第四天&#xff0c;去接触了pwn的整数溢出。 目录 基础 实例讲解 实例讲解2 基础 关于整数溢出&#xff0c;这里以int为例&#xff0c;因为我php之前搞的比较多&#xff0c;以为这个int也是想php一样是64&#xff0c;最大值是9开头的那个&#xff0c;闹了不少笑…

QML Animation动画详解

1.Animation简介 Animation类型提供了四个属性&#xff1a; alwaysRunToEnd&#xff1a;该属性接收布尔类型的参数。该属性保存动画是否运行到完成才停止。当loops属性被设置时&#xff0c;这个属性是最有用的&#xff0c;因为动画将正常播放结束&#xff0c;但不会重新启动。…

算法进阶-动态规划

经典例题 大家肯定想用递归做 思路大概就是这样 递归到最后一行就是对应的D(i,j) 然后往上推 但是这样会超时&#xff0c;因为存在大量的重复计算 比如调用第一行MasSum(7)需要调用MaxSum(3)和MaxSum(8) 但是调用第二行MaxSum(3)还要调用3行的MaxSum(8)和3行的MaxSum(1) 第二行…