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


相关推荐: Android自定义listview布局实现上拉加载下拉刷新功能  如何快速启动建站代理加盟业务?  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  太平洋网站制作公司,网络用语太平洋是什么意思?  Laravel Docker环境搭建教程_Laravel Sail使用指南  Laravel如何记录自定义日志?(Log频道配置)  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  微信小程序 input输入框控件详解及实例(多种示例)  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  如何快速上传建站程序避免常见错误?  edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】  北京企业网站设计制作公司,北京铁路集团官方网站?  Laravel PHP版本要求一览_Laravel各版本环境要求对照  HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  ,南京靠谱的征婚网站?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  Android滚轮选择时间控件使用详解  创业网站制作流程,创业网站可靠吗?  如何解决hover在ie6中的兼容性问题  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  Laravel怎么实现验证码(Captcha)功能  实现点击下箭头变上箭头来回切换的两种方法【推荐】  php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】  JS中对数组元素进行增删改移的方法总结  php打包exe后无法访问网络共享_共享权限设置方法【教程】  黑客如何利用漏洞与弱口令入侵网站服务器?  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  如何用景安虚拟主机手机版绑定域名建站?  如何用腾讯建站主机快速创建免费网站?  新三国志曹操传主线渭水交兵攻略  EditPlus中的正则表达式 实战(1)  如何在云虚拟主机上快速搭建个人网站?  千库网官网入口推荐 千库网设计创意平台入口  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  活动邀请函制作网站有哪些,活动邀请函文案?  Laravel定时任务怎么设置_Laravel Crontab调度器配置  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  android nfc常用标签读取总结  如何用JavaScript实现文本编辑器_光标和选区怎么处理  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  高防服务器租用首荐平台,企业级优惠套餐快速部署  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复