Laravel框架路由是什么?一文带你看懂路由
Admin 2021-05-25 群英技术资讯 1067 次浏览
Laravel框架是PHP中常用的框架之一,文本主要给大家介绍的是Laravel框架路由的基础知识,对于新手学习和理解Laravel框架路由有一定的借鉴价值。下面就跟随小编来认识一下什么是路由和路由的实例等等吧。
大K简单的说下,路由是用户访问我们程序的一个入口,比方说 你在浏览器输入:www.ageteset.com/create 就会打开一个页面,我们接收到这一个请求后后台需要做一些事儿来反馈给用户一些东西。
首先呢laravel的路由定义在这个路径下:app/Http/routes.php
/**
* 这是Laravel提供给我们的主界面路由,输入 localhost:8000(如果你用的artisan控制台)就可以看到主界面啦
*/
Route::get('/', function () {
return view('welcome');
});
/**
* 我们自己定义了get路由
* 浏览器输入 localhost:8000/get 就可以看到啦。
*/
Route::get('/get', function (){
return '这是我们自己定义的get路由';
});
/**
* 我们自己定义了post路由
*/
Route::get('/post', function (){
return '这是我们自己定义的post路由';
});
备注:路由方法不只有 get和post 还有put啊 delete啊等,具体可以根据实际情况使用。
/**
* 使用match可以匹配多种方法到一个路径下, localhost:8000/hello 支持GET方法也支持POST方法。
*/
Route::match(['get', 'post'], '/hello', function (){
return 'hi~ 我是大K';
});
/**
* any 顾名思义 它可以匹配所有的方法。
*/
Route::any('/any', function (){
return 'any能匹配所有的方法';
});
咱在写项目的时候啊 经常需要从路由中捕获参数以便之后的处理,那如何声明呢,继续看:
/**
* 参数的写法简单 加个花括号就行,然后在后面的闭包中捕获它就行。
*/
Route::get('/user/{id}', function ($id){
return '咱成功的拿到了一个用户ID:' . $id;
});
/**
* 可选参数只要在参数名后面跟个问号就好,然后在闭包中给它个默认值就好。
*/
Route::get('/user/{id}/name/{name?}/descriptions/{description?}', function ($user_id, $user_name = 'K', $user_description = null){
return '咱捕获了一堆参数 其中必选参数:'.$user_id.'可选的两个参数 名字:'.$user_name.'简介:'.$user_description;
});
大K呢在上面两个例子中写的不太严谨,就那第一个例子说吧,一般id都是正整数的,可是第一个例子里咱输入一串鸟文它也能识别到,咱应该加串儿正则让它变得挑食点儿:
/**
* 参数的写法简单 加个花括号就行,然后在后面的闭包中捕获它就行。
* 后面跟了个where方法,里面限制了id参数必须是数字。
*/
Route::get('/user/{id}', function ($id){
return '咱成功的拿到了一个用户ID(现在我只能接受数字):' . $id;
})->where('id','[0-9]+');
/**
* 如果对多个参数进行约束,那咱就得在where方法中给数组啦。
*/
Route::get('/user/{id}/name/{name?}', function ($id, $name = 'k'){
return '咱成功的拿到了一个用户ID(现在我只能接受数字):' . $id . '名字:' . $name;
})->where(['id' => '[0-9]+','name' => '[a-zA-Z]+']);
在实际开发中啊,一般参数为ID的一般都是整数,如果咱每个路由后面都跟个where是不是倍儿烦躁?甭担心,有一步到位的方法:在app/Providers/RouteServiceProvider.php 文件中boot方法,添加一段代码就行:
public function boot(Router $router)
{
$router->pattern('id', '[0-9]+');
parent::boot($router);
}
然后修改一下刚刚的例子:
Route::get('/user/{id}', function ($id){
return '咱成功的拿到了一个用户ID(现在我只能接受数字):' . $id;
});
Route::get('/user/{id}/name/{name?}', function ($id, $name = 'k'){
return '咱成功的拿到了一个用户ID(现在我只能接受数字):' . $id . '名字:' . $name;
})->where('name','[A-Za-z]+');
为啥要给路由起名字?咱想一下这么一个场景啊 : 进到某一个路由后 我们需要在数据库中更新一条信息,当信息更新完了后要跳转到另外一条路由,这条路由的路径是:localhost:8000/xxxx/sdfsa/xasfes/xaefsggd/xaeqwes/xadfase(当然啦 我是乱敲的) 难道我们要手动打xxxx/sdfsa/xa...么?或者你可以说 copy一下,但是我们给这条路由起一个名字,直接使用名字来跳转 岂不美哉?
/**
* 现在比如说 用户在更新他的名字 拿到名字后在数据库中更新 更新完了跳转到另一个路由
*/
Route::get('/user/{id}/name/{name}', function ($id, $name){
// 更新数据库操作
// ...
// 跳转
return redirect()->route('showUser',['name' => $name]);
})->where('name','[A-Za-z]+');
/**
* 另一条路由 (路径瞎写的啊)
* 在路径后面加一个数组 as=>router_name 就是这么个流程。
*/
Route::get('/admin/private/user/show/{name}', ['as' => 'showUser', function($name){
return '哇 你的名字已经更新完啦:'.$name;
}]);
以上就是关于对Laravel框架路的简单介绍,关于路由是学习PHP需要掌握的知识,上述示例有一定的参考学习价值,希望能对大家学习有帮助,想要了解更多Laravel框架路内容大家可以继续关注其他文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
在前面我们了解了应该怎样去绘制图形验证码,那接下来我们一起看一看,在PHP中想要实现图像的缩放和裁剪应该怎样操作。不过在了解图像的缩放和裁剪之前我们先来认识一下下面这两个函数:
这篇文章给大家分享的是如何利用tp5实现自定义分页样式的内容。小编觉得挺实用的,因此分享给大家做个参考,下面是具体代码,感兴趣的朋友就继续往下看吧。
区别:1、yaf是使用c语言开发的,效率更高,而laravel是使用PHP开发的,相比之下效率较慢;2、yaf的代码较为简洁轻便,易于调试,而laravel的代码与之相比较为复杂,对编辑器不友好,不易于调试。
php信号量和共享内存的介绍:1、信号量:是系统提供的一种原子操作,一个信号数量,同时只有一个进程能操作。2、共享内存:是系统在存储器中打开的一个公共存储器区域,任何一个过程都可以访问。
面向对象的三大特点是封装、继承、多态。本文将通过示例详细讲讲这三者的使用,文中示例代码讲解详细,需要的可以参考一下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008