laravel入门使用(路由)

1.什么路由?
将用户的请求按照事先规划的方案提交给指定的控制器或者功能函数来进行处理【通俗讲,路由就是访问地址的形式】。且laravel中并没有固定参数,其路由必须要手工进行配置。
laravel入门使用(路由)
上面是路由的配置文件。
打开web.php文件
laravel入门使用(路由)
2.路由的定义格式:
Route::请求方式【get/post】(‘请求的URL’,匿名函数或控制响应的方法)
注意: 两个::表示进行的静态方式进行请求
laravel入门使用(路由)
上面是原本的路由和添加的两个路由
注意:路由地址的第一个"/“可以不写(包括"根路由”,也包括后期路由的拆分)
如果还有更多的路由需要去定义,则仿照上诉形式继续编写即可,但是只要需要访问,则必须需要定义路由。
请求方式有哪些?
Route::get(url,url,callback);
Route::post(url,url,callback);
Route::put(url,url,callback);
Route::patch(url,url,callback);
Route::deleteurl,url,callback);
Route::options(url,url,callback);
还有两种方法,但是这两种方法不是请求类型,也是放在这里
如果需要解决action=""表示提交到当前地址用get方法,而method提供的是post,这样的问题,则需要下面的两个方法解决。
Routh::match([‘get’,‘post’],’/’,function(){
})
Routh::any(‘foo’,function(){
})
这是注册多个路由相应多个HTTP请求——可以通过match方法来实现,或者,可以使用any方法注册一个路由来响应所有HTTP请求。
match方法:表示匹配用户指定的几个请求类型(通过第一个参数去确定)的请求;
any方法:表示匹配路由所支持的全部请求类型
如果路由方法与实际的请求类型不一致,则会报错。
尽量不去用any方法来定义,不是很安全。
3.路由参数
路由参数其实就是一种给框架地址传递参数的一种形式,给路由传递参数。
参数分为可选参数和必选参数
必选参数:一旦在路由中定义了,则必须传递,不传递就会报错。

路由参数的传递通过路由地址中的"{参数名}"的形式来进行传递,该形式是必选参数的形式
例如:
Route::get(‘home1/{id}’,function(KaTeX parse error: Expected '}', got 'EOF' at end of input: … echo"输入的id是".id;
});
laravel入门使用(路由)
可选参数的形式:
“{参数名?}”
Route::get(‘home1/{id?}’,function(KaTeX parse error: Expected '}', got 'EOF' at end of input: … echo"输入的id是".id;
});
laravel入门使用(路由)路由还支持传统的路由参数传递
url?id=XXX&aaa=xxxx
这种方式传递参数不受路由的限制,不需要在路由文件中事先定义好路由参数,例如;
Route::get(‘home3’,function(){
id=isset(id=isset(_GET[‘id’])?GET[id]:1;return"id"._GET['id']:1; return "当前输入的id是".id;
});
laravel入门使用(路由)
4.路由别名(alias)【重点】
相当于在路由定义的时候,为路起了一个别名,在以后的程序中可以通过这个别名来获取路由的信息。
场景:在后期需要频繁的定义跳转地址,但是如果这些地址写死了的话,万一发生变化,得全部修改,这个操作比较麻烦,因此可以使用路由别名的机制(定义路由的时候给路由起名字,在后期需要使用路由的时候直接调用名字)去简化以后的操作。
给路由起名字的语法:
Route::请求类型(路由地址,响应方法)->name(别名);
例如:
laravel入门使用(路由)补充:查看系统已经有的路由命令
php artision route:list
laravel入门使用(路由)
5.路由群组(理解,实用)
/admin/login
/admin/logout
/admin/index
/admin/user/add
/admin/user/del

他们的共同点是都有/admin/前缀,为了管理方便,可以把他们放到一个路由分组中,这个分组称之为路由群组。

使用prefix属性指定路由前缀,也就是其路由中都具备的相同部分。

语法:Route::group(公共属性键值数组,回调函数); 回调函数中放的是剔除公共属性之后的路由;
例如:想要为所有路由URLs前面添加前缀admin
Route::group([‘prefix’=>‘admin’],function(){
Route::get(‘login’,function(){
return “登录”;
});
Route::get(‘logout’,function(){
return “注销”;
});
Route::get(‘user/add’,function(){
return “用户添加”;
});
Route::get(‘user/del’,function(){
return “用户删除”;
});
}
);
laravel入门使用(路由)
两个注意事项:
1.以大局为重,尽量在全局的角度考虑路由的公共特性。
2.群组里的路由尽量的多,不能几个/一两个就组成一个群组,没有必要
还有就是,使用路由群组不会改变其原有在地址栏中输入的地址,变的只是路由定义的写法。