您的位置 首页 php

「干货」一篇文章学会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');

// 访问方式:
<a href="{{%20route('user.profile',%20['id'%20=>%20100])%20}}">  

四、路由分组

 Route::group([], function () { 
    Route::get('hello', function () { 
        return 'Hello'; 
    }); 
    Route::get('world', function () { 
        return 'World'; 
    }); 
});  

五、路由分组、 间件(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();  

十、清除路由缓存

 php artisan route:cache  

十一、删除路由缓存

 php artisan route:clear  

通过以上的学习总结,我们已经学会了Laravel的路由定义、访问方式,而且路由非常的方便,对于新手来说,学习起来非常的方便,也非常容易学会。

更多内容请 关注公众号 Laravel技术社区 ),带你走进干货的世界。

文章来源:智云一二三科技

文章标题:「干货」一篇文章学会Laravel框架所有路由知识

文章地址:https://www.zhihuclub.com/152935.shtml

关于作者: 智云科技

热门文章

网站地图