laravel第二讲:路由的定义及与控制器绑定

发布时间 - 2020-12-08 00:00:00    点击率:

我们知道,网络中的路由器是用来选择路径、转发分组的,那么框架中的路由是用来干嘛的呢?这里的路由是用来接收http请求的路径,通过设置路径来访问特定程序的功能。路由是框架的核心功能之一,基本所有主流框架都有路由功能。并且,我们可以通过设置路由来将一些长的、深的路径该成短的、浅的路径(非常利于seo的一个功能)。

默认路由文件

所有的laravel路由都在根目录的routes目录下的路由文件定义,框架默认自动加载这个目录下的文件。我们看看routes/web.php这个文件

use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return view('welcome');
});

基本路由

现在,我们在web.php文件中,新建一个最简单的路由,代码如下:

Route::get('index', function () {
    return "study laravel";
});

现在,我们在浏览器中输入localhost:8000/index就可以看到"study laravel"这句话了。

常见路由方法

除了上述了get方法外,经常使用的路由方法有:post,put,delete,any,match。

这里的any方法表示不管是什么请求方式都可以,可以是get/post/put等请求方式,它都处理。而match可以用来指定多个请求,下面来演示match的用法:

Route::match(['get', 'post'], "list", function ()
{
    return 'list';
});

参数传递

经常的,我们在路由中还会加入参数。比如/news/1这样是非常的常见。lavarel的路由方法支持参数的传递,如:

Route::get('news/{id}', function ($id) {
    return 'news:' . $id;
});

上述的路由虽然能够传递参数,但还是不能满足我的需求,我希望{id}这个参数必须是数字,那么,可以这样:

Route::get('news/{id}', function ($id) {
    return 'news:' . $id;
})->where('id', '\d+');

我们还可以传递多个参数,闭包中的参数会自动一一对应,如:

Route::get('/name/{name}/age/{age}', function($name, $age) {
    echo "name:$name age:$age";
})->where(['name' => '\w+', 'age' => '\d+']);

路由与控制器绑定

首先,我们创建一个控制器文件app\Http\Controllers\IndexController.php,代码如下:

现在修改路由文件web.php

Route::get('news/{id}', 'IndexController@news')->where('id', '\d+');

现在通过/news/1就能访问到IndexController控制器中的news方法了。

若创建了app/Http/Controllers/Home/IndexController.php,那么这个控制器的路由该如何设置呢?方法如下:

Route::get('home', 'Home\IndexController@index');


# laravel  # php  # lavarel  # 闭包  # delete  # http  # SEO  # 多个  # 是用来  # 器中  # 都有  # 目录下  # 还可以  # 都在  # 就能  # 还会  # 我们可以 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 怎么用AI帮你设计一套个性化的手机App图标?  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  jQuery validate插件功能与用法详解  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  如何快速打造个性化非模板自助建站?  网站制作价目表怎么做,珍爱网婚介费用多少?  如何快速重置建站主机并恢复默认配置?  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  Python文本处理实践_日志清洗解析【指导】  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  原生JS获取元素集合的子元素宽度实例  谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复  北京的网站制作公司有哪些,哪个视频网站最好?  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  如何在搬瓦工VPS快速搭建网站?  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  Laravel如何使用Gate和Policy进行授权?(权限控制)  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  iOS发送验证码倒计时应用  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  Linux后台任务运行方法_nohup与&使用技巧【技巧】  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  Laravel如何优化应用性能?(缓存和优化命令)  php485函数参数是什么意思_php485各参数详细说明【介绍】  如何有效防御Web建站篡改攻击?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  Laravel如何实现事件和监听器?(Event & Listener实战)  Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】  电商网站制作价格怎么算,网上拍卖流程以及规则?  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  高防服务器如何保障网站安全无虞?  利用python获取某年中每个月的第一天和最后一天  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  如何在阿里云服务器自主搭建网站?  Laravel如何实现模型的全局作用域?(Global Scope示例)  Android仿QQ列表左滑删除操作  如何快速登录WAP自助建站平台?  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  什么是javascript作用域_全局和局部作用域有什么区别?  香港服务器选型指南:免备案配置与高效建站方案解析  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  公司网站制作价格怎么算,公司办个官网需要多少钱?  如何快速生成高效建站系统源代码?  Android GridView 滑动条设置一直显示状态(推荐)  昵图网官网入口 昵图网素材平台官方入口  如何快速搭建FTP站点实现文件共享?