laravel中路由命名及路由分組的示例分析-創(chuàng)新互聯(lián)

這篇文章給大家分享的是有關(guān)laravel中路由命名及路由分組的示例分析的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過來看看吧。

創(chuàng)新互聯(lián)為企業(yè)級客戶提高一站式互聯(lián)網(wǎng)+設(shè)計(jì)服務(wù),主要包括網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、app軟件定制開發(fā)、重慶小程序開發(fā)公司、宣傳片制作、LOGO設(shè)計(jì)等,幫助客戶快速提升營銷能力和企業(yè)形象,創(chuàng)新互聯(lián)各部門都有經(jīng)驗(yàn)豐富的經(jīng)驗(yàn),可以確保每一個(gè)作品的質(zhì)量和創(chuàng)作周期,同時(shí)每年都有很多新員工加入,為我們帶來大量新的創(chuàng)意。 

路由命名

路由命名是為了程序能夠方便的獲取到路由信息,拿到該信息,可以進(jìn)行重定向或作其他操作。路由命令通過name方法來實(shí)現(xiàn)。下面,我們來給一個(gè)路由命名:

Route::get('about', function () {})->name('index.about');

當(dāng)給一個(gè)路由命名后,就可以通過助手函數(shù)route來獲取該路由的url。

$url = route('index.about');
echo $url;  // http://localhost:8000/about

如果我們不想要前面的域名部分,只想拿后面的路徑,那么可以這樣

$url = route('index.about', [], false);
echo $url;  // /about

如果定義的是有參數(shù)的路由,那么可以把參數(shù)作為route函數(shù)的第二個(gè)參數(shù)傳入

Route::get('news/{id}', 'IndexController@news')->name('home.news');

...
return redirect()->route('home.news', ['id' => 23]);

route函數(shù)中第二個(gè)參數(shù)數(shù)組元素可以自動(dòng)和路由參數(shù)對應(yīng),若route函數(shù)中第二個(gè)參數(shù)數(shù)組元素比路由設(shè)定的參數(shù)多的話,則會自動(dòng)拼接生成URL

echo route('home.news', ['id' => 23, 'page' => 3, 'page_num' => 20]);
// http://localhost:8000/news/23?page=3&page_num=20

路由分組

路由分組的作用是,當(dāng)系統(tǒng)設(shè)定了許多路由,但發(fā)現(xiàn)有些路由有一些共同的點(diǎn),比如有相同的命名空間前綴,或有相同的路徑前綴,那么就可以把有共同點(diǎn)的那些路由放在一個(gè)路由中,方便了管理也減少了代碼量,并且代碼看上去也更加的優(yōu)雅。

路由前綴

我們把有相同前綴的路由放在一個(gè)分組里。下面是兩個(gè)有相同前綴的路由:

Route::prefix('index')->get('a', function () {
    return 'a'; // 匹配/index/a
});

Route::prefix('index')->get('b', function () {
    return 'b'; // 匹配/index/b
});

現(xiàn)在,我們將他們放到一個(gè)分組中

Route::prefix('index')->group(function ()
{
    Route::get('a', function () {
        return 'a'; // 匹配/index/a
    });
    Route::get('b', function () {
        return 'b'; // 匹配/index/b
    });
});

除了使用prefix方法外,還可以在group方法的第一個(gè)參數(shù)中設(shè)定,如下所示:

Route::group(['prefix' => 'index'], function ()
{
    Route::get('a', function () {
        return 'a'; // 匹配/index/a
    });
    Route::get('b', function () {
        return 'b'; // 匹配/index/b
    });
});

命名空間

命名空間也是一個(gè)經(jīng)常會用到的路由分組。

Route::group(['namespace' => 'Home'], function ()
{
    Route::get('home/index', 'IndexController@index');
});

如果上述代碼沒有設(shè)置命名空間,則上面的路由則為

Route::get('home/index', 'Home\IndexController@index');

子域名

用來設(shè)定通過哪個(gè)域名可以訪問,不是這個(gè)域名即使路徑正確也不可以訪問。

Route::domain('php.cn')->group(...)

名稱前綴

name方法可以為每個(gè)路由分組中路由添加一個(gè)給定前綴

Route::name('abc.')->group( function ()
{
    Route::get('home', function () {

    })->name('home');
});

……
$url = route('abc.home');

感謝各位的閱讀!關(guān)于laravel中路由命名及路由分組的示例分析就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

新聞標(biāo)題:laravel中路由命名及路由分組的示例分析-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://muchs.cn/article12/djgddc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)網(wǎng)站收錄、全網(wǎng)營銷推廣、商城網(wǎng)站企業(yè)建站、網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名