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的路由设置,路由参数和路由命名(三)的更多相关文章
- 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用于 ...
随机推荐
- OO第三次博客
规格化设计的发展历史 在计算机的早期发展中,软件开发没有可以遵循的系统方法,往往只有源代码而没有软件说明书等文档,因此这段时期的软件通用性时很有限的.后来到了20世纪60年代,软件开始被广泛使用,软件 ...
- 三、CSS样式——链接
CSS链接的四种状态: a:link ——普通的.未被访问的链接 a:visited ——用户已访问的链接 a:hover ——鼠标指针位于链接的上方 a:active ——链接背点击的时刻 常见的链 ...
- Linux下安装docker(1)
1.由于centos系统已经自带docker源了,所以可以直接安装: yum install docker 如果是centos6.5版本的,使用yum -y install docker-io 进行安 ...
- 02-03 CSS快速入门
css四种引入方式:test.html: p{ color: gold; font-size: 20px; } title.html: <!DOCTYPE html> <html l ...
- linux查看tomcat启动运行日志
1.先切换到:cd tomcat/logs 2.tail -f catalina.out 3.这样运行时就可以实时查看运行日志了
- 深度学习实践-强化学习-bird游戏 1.np.stack(表示进行拼接操作) 2.cv2.resize(进行图像的压缩操作) 3.cv2.cvtColor(进行图片颜色的转换) 4.cv2.threshold(进行图片的二值化操作) 5.random.sample(样本的随机抽取)
1. np.stack((x_t, x_t, x_t, x_t), axis=2) 将图片进行串接的操作,使得图片的维度为[80, 80, 4] 参数说明: (x_t, x_t, x_t, x_t) ...
- 用java输入分数,得出分数等级
import java.util.Scanner;public class F { public static void main(String[] args) { // TODO 自动生成的方法 ...
- pod 更新慢解决方案
pod install --verbose --no-repo-update pod update --verbose --no-repo-update
- 如何引入.graphql文件并优雅的使用fragment
你还在为代码中放入长长的模版字符串所苦恼吗,如下图代码片段: ps:这个是grqphql client在nodejs后端项目的实践,如果你是在前端使用graphql,并使用了webpack,那么这些问 ...
- DOM对象与jquery对象相互转换