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的路由设置,路由参数和路由命名(三)的更多相关文章
-
Controller里写自己需要的Action,参数的名字必须和路由设置的参数名一致
Controller里写自己需要的Action,参数的名字必须和路由设置的参数名一致,如果参数不一致,传过去为null
-
MVC的路由设置【转】
转,MVC的路由设置. 后端获取路由里面action的参数,函数需要设置相同的参数名称才行. routes.MapRoute( "Default", "{controll ...
-
vue设置路由跳转参数,以及接收参数
最近做Vue项目,遇到了一个路由跳转问题:首页要跳转到项目页指定的Tab选项卡项,一开始总是跳到默认项.解决方法如下: 在跳转链接处设置了路由跳转参数,如下: <router-link :to ...
-
laravel 增删改查 数据库设置 路由设置
laravel 框架的路由设置: url: http://www.shanzezhao.com/laraverl/my_laravel/public/index.php/indexs laravel ...
-
xp多网卡静态路由设置方法
xp多网卡静态路由设置方法 一.多个IP都在同一网段或VALN.这类情况没什么好说的,在各块网卡的本地连接属性里设置好IP地址.子网掩码和默认网关即可. 二.多个IP属于不同网段或VLAN.这时如果按 ...
-
express中路由设置的坑-----1
router.get('/commodities/sortable', utils.logged, function (req, res) { Commodity.find({force_top:tr ...
-
CI 路由设置
$route['news/show/(:num)']='news/show/$1'; 前边是匹配 网址 后边是 指定控制器 在application/config/文件夹下有routes.p ...
-
React+Ant Design设置左侧菜单导航路由的显示与隐藏(与权限无关)
最近在学习react时,用到了很流行的UI框架Ant Design,也了解了一下Ant Design Pro,发现它们都有导航组件,Ant Design框架的导航菜单在这里,Ant Design Pr ...
-
react一看就会的简单路由设置
不管是vue还是react 这种单页面的框架一定都少不了路由 下面给大家讲讲在实际项目中react的路由设置 第一步: 在src目录下新建一个目录route 在该目录下新建一个index.js用于 ...
随机推荐
-
memcache 操作类
<?php /** * memcache 操作实现 * @author timeless */ class Memcache_manage { //CI原始的信息 private $_ci; p ...
-
Java发送邮件的简单实现
使用Oracle官方的JavaMail进行实现,JavaMail下载地址:https://java.net/projects/javamail/pages/Home 将下载好的jar包加入到工程路径中 ...
-
vue 从入门到精通(一)
很早之前就想开一系列有关vue的博客,奈何太忙了,哈哈(爱信不信)...刚刚收到消息vue2.5发布了,哎!还是应该加快一下步伐,要不就与社会脱节了.这次采用小步慢跑的形式一点一点总结vue,第一篇先 ...
-
xssgame挑战wp
前言 昨晚做了一些xss的题目,有点上瘾了,今天想着再找一些来做做. google了一下,发现了不少,找到这么一个. 地址: https://xss-game.appspot.com 这是一个国外的x ...
-
【HAOI2015】树上操作(树链剖分)
题面 Description 有一棵点数为N的树,以点1为根,且树点有边权.然后有M个操作,分为三种: 操作1:把某个节点x的点权增加a. 操作2:把某个节点x为根的子树中所有点的点权都增加a. 操作 ...
-
OpenCV3编程入门读书笔记5-边缘检测
一.边缘检测的一般步骤 1.滤波 边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感,因此必须采用滤波器来改善与噪声有关的边缘检测器的性能. 2.增强 增强边缘的基础是确定图像各 ...
-
Luogu P2852 [USACO06DEC]牛奶模式Milk Patterns
题目链接 \(Click\) \(Here\) 水题.利用\(Height\)的性质维护一个单调栈即可. #include <bits/stdc++.h> using namespace ...
-
Python之路,第六篇:Python入门与基础6
python 列表 序列类型简介(sequence) 字符串str 列表list 元祖tuple 概念: ...
-
linux 使用supervisor来管理进程
现在假设一个脚本是,hello.py,内容是 fo = open('xx.txt','w') while 1: fo.write('hello world') print('hi') time.sle ...
-
WinForm通过操作注册表实现限制软件使用次数的方法
1.创建注册表文件: 打开记事本,输入一些内容: ? 1 2 3 REGEDIT4 [HKEY_CURRENT_USER/Software/MyRegDataApp] "UseTime&qu ...