本节内容主要讲解Laravel框架的路由详解,主要讲解路由的定义,参数,规则,访问控制器等操作一、常用路由动作语法Route::get($uri, $callback); Route::post($uri, $callback); Route::put($uri, $callback); Route::patch($uri, $callback); Route::delete($uri, $callback); Route::options($uri, $callback);。
常用路由方式Route::post(/, function(){ return view(welcome); }); Route::get(/, function(){ return
view(welcome); }); Route::delete(/, function(){ return view(welcome); }); ...... 或者直接请求控制器 Route::post(
/, WelcomeController@index); Route::get(/, WelcomeController@index); Route::delete(/, WelcomeController@index
);任何请求方式匹配Route::any([get, post], /, function(){ return view(welcome); }); Route::any([get, post
], /, WelcomeController@index);白名单数组匹配match组合Route::match([get, post], /, function() { return view(
welcome); }); Route::match([get, post],/, WelcomeController@index);重定向路由Route::redirect(/here, /404
, 404);二、参数路由Route::get(user/{id?}, function($id = 1){ return"用户ID: " . $id; });正则方式的参数路由Route::get(
page/{id}, function($id){ return页面ID: . $id; })->where(id, [0-9]+); Route::get(page/{name}, function
($name){ return页面名称: . $name; })->where(name, [A-Za-z]+); Route::get(page/{id}/{slug}, function
($id, $slug){ return $id . : . $slug; })->where([id => [0-9]+, slug => [A-Za-z]+]);三、路由别名(以user.profile进行访问)
Route::get(user/{id?}, function($id = 1){ return"用户ID: " . $id; })->name(user.profile); // 访问方式:
100]) }}">四、路由分组Route::group([], function(){ Route::get(
hello, function(){ returnHello; }); Route::get(world, function(){ returnWorld
; }); });五、路由分组、中间件(2中方式-一般使用第二种)Route::middleware(auth:api)->group(function(){ Route::get(
dashboard, function(){ return view(dashboard); }); Route::get(account, function(){
return view(account); }); });或者Route::group([middleware => auth:api], function(){ Route::get(
dashboard, function(){ return view(dashboard); }); Route::get(account, function(){
return view(account); }); });六、路由路径前缀Route::prefix(api)->group(function(){ Route::get(/, function
(){ // 处理 /api 路由 })->name(api.index); Route::get(users, function(){ // 处理 /api/users 路由
})->name(api.users); });七、路由子域名Route::domain({account}.blog.test)->group(function(){ Route::get(
/, function($account){ //TODO }); Route::get(user/{id}, function($account, $id){
//TODO }); });八、路由命名空间Route::namespace(Admin)->group(function(){ // App\Http\Controllers\Admin\AdminController
Route::get(/admin, AdminController@index); });路由命名空间、前缀、分组、参数、别名组合// 路由命名+路径前缀 Route::name(user.
)->prefix(user)->group(function(){ Route::get({id?}, function($id = 1){ // 处理 /user/{id} 路由,路由命名为 user.show
return route(user.show); })->name(show); Route::get(posts, function(){ // 处理 /user/posts 路由,路由命名为 user.posts
})->name(posts); });九、访问当前路由$route = Route::current(); $name = Route::currentRouteName(); $action = Route::currentRouteAction();
十、清除路由缓存phpartisanroute:cache十一、删除路由缓存phpartisanroute:clear通过以上的学习总结,我们已经学会了Laravel的路由定义、访问方式,而且路由非常的方便,对于新手来说,学习起来非常的方便,也非常容易学会。
更多内容请关注公众号(Laravel技术社区),带你走进干货的世界。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。