【Laravel】Laravel框架中的路由
后台-插件-广告管理-内容页头部广告(手机) |
路由
一、什么是路由
- 在网络通信中,“路由”是一个网络层面的术语,它是指从某一网络设备出发去往某个目的地的路径。
- 在网站开发中,路由的本质就是一种对应关系,例如,在浏览器地址栏中输入要访问的URL 地址后,浏览器要去请求这个URL 地址对应的资源。那么URL 地址和真实的资源之间就存在一种对应关系,这就是路由。
二、配置路由
-
Laravel 框架的路由需要在routes\web.php 文件中进行配置,将该文件打开后,会看到里面已经添加了一个路由配置。
-
定义路由的完整语法格式如下:
Route::请求方式('请求url', 匿名函数或控制器相应的方法);
例子
Route::get('/hello',function(){ return 'hello'; });
如果在浏览器访问
http://127.0.0.1/hello
,出现一下情况就是表明没有添加伪静态 修改网站目录下的
.htaccess
文件添加以下内容Options -MultiViews -Indexes RewriteEngine On # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301] # Send Requests To Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L]访问成功
-
请求方式可以是get、post、put、patch、delete和options,其中, get 方式是直接请求URL时默认使用的方式,post是提交表单时常用的方式。
-
匹配get和post请求方式
Route::match()用于在一个路由中同时匹配多个请求方式。
Route::any()用于在一个路由中匹配任意请求方式。
// 同时匹配get和post请求方式 Route::match(['get','post'],'/text',function(){ return '通过match()匹配'; }); Route::any('/text1',function(){ return '通过any()匹配'; });
三、路由参数
Laravel 允许在请求URI 中传递一些动态的参数,称为路由参数。通过路由参数可以传递一些请求的信息
路由参数分为必选参数和可选参数,必选参数的语法为“{参数名}”,而可选参数的语法为“{参数名?}
3.1 必选参数路由
//必选参数
Route::any('find/{id}',function($id){
return '输入的ID为'.$id;
});
3.2 可选参数路由
//可选参数
Route::any('find2/{id?}',function($id=0){
return '输入的ID为'.$id;
});
四、重定向路由
重定向路由用于实现页面跳转。
4.1 语法格式
定义重定向路由使用Route::redirect()方法,语法格式如下。
Route::redirect('请求URI', '重定向URI' [,'状态码']);
- redirect表示实现路由重定向。
- 状态码是可选参数,默认状态码是302。
4.2 示例
将路由“hello”重定向到“/”。
Route::redirect('/hello','/');
五、路由别名
-
路由别名用于在定义路由的时候,为路由起一个别名。
-
设置别名后,当在其他地方用到这个路由地址时(如模板中的各种超链接),可以不用书写原来的地址,而是通过别名来引用这个地址。
-
如果不设置路由别名,当修改路由地址时,可能有很多地方的代码都使用了这个地址,这些代码都需要修改会非常麻烦
例子
修改以下文件
welcome.blade.php
123 //改变则无效
123pli=us //改变有效果
web.php
Route::get('/hello/123/452', function () {
return '123';
})->name(123);
六、路由分组
为了便于路由的管理,对路由进行分组,分组后,可以对一组路由统一进行管理。
6.1语法格式
Route::group(公共属性数组, 回调函数)
Route::group(公共属性数组, 回调函数)
6.2 代码示例
//路由分组
Route::group(['prefix'=>'admin'], function () {
Route::get('/hello', function () {
return '这是/admin/hello';
});
Route::get('/login', function () {
return '/admin/login';
});
Route::get('/index', function () {
return '/admin/index';
});
});
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
在线投稿:投稿 站长QQ:1888636
后台-插件-广告管理-内容页尾部广告(手机) |