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用于 ...
随机推荐
- 浅谈角色换装功能--Unity简单例子实现
在前置篇中,基本上梳理了一下换装功能背后涉及到的美术工作流.但程序员嘛,功能终归是要落到代码上的.本文中会结合Unity提供的API及之前提到的内容来实现一个简单的换装功能.效果如下: (图1:最终效 ...
- 最全面的DialogFragment的使用,实现DialogFragment全屏、背景透明;
Android推荐使用DialogFragment代替Dialog,好处就说一点吧,DialogFragment就是个盖在界面上的Fragment,它拥有Fragment一样的功能和生命周期,解决普通 ...
- C++实现串口的自动识别
1.首先需要遍历注册表得到所有可用的串口 将得到的每一个串口保存到向量vector中,代码如下: // 得到所有的串口号 vector<string> cnComm::getComPort ...
- 阿里云centos7.4下tomcat8.5配置ssl证书
环境 阿里云centos7.4 域名也是阿里申请的 jdk1.8 tomcat8.5 1.申请证书 登录到阿里云的域名管理,可以看到已经申请过得域名,我这里第一个已经配置了ssl,第二个未配置,点击更 ...
- Spring3.2.0 之后各个版本完整包下载地址
留作工作学习使用 现在Spring官网已经很难找到完整包的下载地址,都已经迁移到Maven上,这给不能用Maven或者不愿用Maven的各位带来了不小的麻烦. 经过挖掘,找到了下载3.2之后各个版本完 ...
- orcal - 子查询
where 单行单列 SELECT AVG(sal) from emp; SELECT * FROM EMP WHERE sal <(SELECT AVG(sal) from emp); 单行多 ...
- js自执行事件
let a = document.createElement("a");let event = new MouseEvent("click");a.downlo ...
- HTML5 使用 JS 生成二维码,带头像
一般在项目开发中,前端显示给用户扫描的二维码基本都是由后端代码生成的,那么这个高大上的功能能不能用 JS 来绘制呢? 答案是肯定的 首先我们需要一个插件 jquery.qrcode.js,该插件基于 ...
- django APPEND_SLASH
#设置项是否开启URL访问地址后面不为/跳转至带有/的路径APPEND_SLASH=True
- Redis 4.0.2.3 for Windows (alpha) 下载地址
下载地址如下: https://github.com/tporadowski/redis/releases 如果直接使用redis-server.exe启动报错的话,就使用redis-server.e ...