Laravel路由简介:
路由第一个参数是访问的路径,第二个参数是一个action
比如:
输出视图
Route::any('/',function(){ return view('welcome');//输出模板welcome }); Route::any('/',function(){ return 'Hello World';//单纯的输出文字 });
一般路由器不会直接输出视图,只会用来绑定控制器,并且进行传参操作
路由传参
比如:
web.php
Route::any('/center/{id}','CenterController@id');
(注释:把id这个参数传入CenterController
这个控制器的id
这个方法)
app/Http/CenterController.php
namespace App\Http\Controllers; class CenterController extends Controller{ public function id($id){ return 'Member-ID-'.$id; } }
(注释:接收来自路由传入变量id)
Route::any('/center/{name?}','CenterController@id');
(注释:此处变量name后面的”?”的作用是说明该变量具有默认值,即可以在控制器中对应的方法中传参时设定一个默认参数,如果不使用该标识的话会导致访问时出现报错/404页面的出现)
路由参数过滤器
比如:
过滤单个参数
Route::any("/center/{id}",'CenterController@id')->where('id','[0-9]+');
过滤多个参数
Route::any("/center/{id}/{name}",'CenterController@id')->where(['id'=>'[0-9]+','name'=>'[A-Za-z]+']);
(注释:where把路由指向where函数即可启用过滤器,过滤器的第一个参数是要过滤的变量名,第二个参数是过滤的正则表达式,如果不遵循正则表达式的话,会先匹配其他路由规则,若无符合的规则,则会抛出404/错误)
Laravel路由类型:
- Get路由
- Post路由
- Any路由
- Match路由
下面将开始详解每一个路由的用法(个人总结的笔记)
Get路由
Route::get('/','ControllerName@MethodName');
顾名思义通过给服务器发起get请求时,可以触发该路由操作
Post路由
Route::post('/','ControllerName@MethodName');
只有当发起post请求时,才会触发该路由绑定的控制器
若直接访问该路由,将会抛出错误
Any路由(多请求路由)
Route::any('/','ControllerName@MethodName');
any路由其实就是post与get路由的结合体,可以通过使用post请求/get请求来访问该路由
Match路由(多请求路由)
Route::match(['get','post'],'/','ControllerName@MethodName');
在match路由中,该路由的第一个参数使用来配置该路由可以接受什么样的请求(详细可以接受什么样子的参数待以后再更新)
路由群组:
Route::group(['prefix'=>'member'],function(){ Route::any('user/member-center',['as'=>'center',function(){ return route('center'); }]); Route::get('/basic1',function(){ return 'Hello world'; });//GET路由 });
路由群组的作用:
可以把路由分门别类的放置到一个群组中,使用路由前缀进行访问
如localhost/member/basic1访问的就是位于member群组下的basic1路由
路由别名:
Route::get('user/member-center',['as'=>'center',function(){ return route('center');//获取center路由的完整地址 }]);
路由别名的作用就是使用route时使用已预定好名字对应的路由
比如:route(‘center’)对应的就是localhost/user/member-center
如果此时需要修改url仅需要在路由这修改,即可做到全项目修改
目前笔记先做到这里,如果有错再更新