laravel路由的配置,别名,路由群组


什么是路由:


路由:将用户的请求按照事先规划好的方案提交给指定的控制器,或者功能函数来进行处理。
路由就是访问的地址形式。
在laravel框架中路由要进行手动配置。
访问就用路由


配置路由文件。


路由文件在自己创建的laravel文件下的routes/web.php
在这里插入图片描述

1.打开web.php文件后,默认为根目录文件。
跟路由一般为网站的首页。
在这里插入图片描述
2.路由的定义方式:
Route::请求方式(‘请求的URL’,匿名函数或控制器方法);
其中跟路由/可以省略。
例如:

Route::get('/', function () {
   return "helloworld";
});

此时输出:(定义模拟主机的方法,见于,添加链接描述)https://blog.csdn.net/qq_45844648/article/details/104903532
在这里插入图片描述
3.路由的请求方式:

  • Route::get(路径,方法);
  • Route::post(路径,方法);
  • Route::put(路径,方法);
  • Route::patch(路径,方法);
  • Route::delete(路径,方法);
  • Route::options(路径,方法);
    要解决“<form action="" mathod="post">”的问题,需要以下两个解决方法;
    注册路由响应多个HTTP请求------可以通过match方法来实现。或者,可以用any方法注册一个路由来响应所有的HTTP请求。
    使用方法:
    Route::match([‘get’,‘post’],’/’,function(){
    //
    });

常见的四个方法:
get:表示匹配请求类型为get的请求;
post:表示匹配请求类型为post的请求;
match:表示匹配用户指定的几个请求类型(通过第一个参数去指定)的请求;
any:表示匹配路由所支持的全部请求类型;
如果路由方法和实际请求的类型不一样则会报错。
***路由参数:***分为必选参数和可选参数。

  • 必选参数,一旦路由中定义过了,则必须传递,不传递就会报错。
  • 路由参数的传递通过路由地址中的(参数名)形式来进行传递,
  • 例如:
  • Route::get('/home/{id}',function($id){ echo "输入的id是:".$id});
  • 必须得赋值才可以,否则报错。
    在这里插入图片描述
    书写时必须添加值
    路径/id=xxx
    在这里插入图片描述

可选参数:
{参数名?}的形式;
在这里插入图片描述

在这里插入图片描述

注意:
路由参数除了上述两种传递方式,还支持传统路由参数传递。
url?id=xxx&aaa=xxxx
这种方式传递的参数不受路由限制,不需要在路由文件中事先定义好。

Route::get('/home1',function(){
    $id=isset($_GET['id'])?$_GET['id']:1000;
    return "当前id:".$id;
});

直接访问home1时,id值为1000
在这里插入图片描述
也可以直接输入?id=xxx,当前输出就为id=xxxxx
在这里插入图片描述


路由别名


相当于定义路由的时候,给路由起了一个别名,在以后的程序中可以通过,别名来获取路由的信息。
设置方法:

Route::get('/',function(){
//例如,设置一个别名为:aa
return "helloworld";
})->name('h');

在文件所在位置打开,命令行
在这里插入图片描述
输入php artisan route:list 回车 查看 此时根目录就添加了别名h
在这里插入图片描述

路由群组:
例如:home/test/test1
home/test/test2
共同点都有home为前缀,可以把这两个放置到同一个路由分组里。
使用prefix属性指定路由前缀,也就是路由中都具备的相同部分
语法:
Route::group(公共属性键值数组,回调函数)
回调函数中放的剔除公共属性之后的路由。

Route::group(['prefix'=>"home"],function(){
    Route::get('/test/test1', function () {
       return "helloworld1";
    });
    Route::get('/test/test2', function () {
       return "helloworld2";
    });
});

也可以写成:

Route::group(['prefix'=>"home/test/"],function(){
    Route::get('test1', function () {
       return "helloworld1";
    });
    Route::get('test2', function () {
       return "helloworld2";
    });
});

在这里插入图片描述

在这里插入图片描述

发布了57 篇原创文章 · 获赞 1 · 访问量 979

猜你喜欢

转载自blog.csdn.net/qq_45844648/article/details/104946180