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

路由命名
路由命名是為了程序能夠方便的獲取到路由信息,拿到該信息,可以進行重定向或作其他操作。路由命令通過name方法來實現。下面,我們來給一個路由命名:
Route::get('about', function () {})->name('index.about');當給一個路由命名后,就可以通過助手函數route來獲取該路由的url。
$url = route('index.about');
echo $url; // http://localhost:8000/about如果我們不想要前面的域名部分,只想拿后面的路徑,那么可以這樣
$url = route('index.about', [], false);
echo $url; // /about如果定義的是有參數的路由,那么可以把參數作為route函數的第二個參數傳入
Route::get('news/{id}', 'IndexController@news')->name('home.news');
...
return redirect()->route('home.news', ['id' => 23]);route函數中第二個參數數組元素可以自動和路由參數對應,若route函數中第二個參數數組元素比路由設定的參數多的話,則會自動拼接生成URL
echo route('home.news', ['id' => 23, 'page' => 3, 'page_num' => 20]);
// http://localhost:8000/news/23?page=3&page_num=20路由分組
路由分組的作用是,當系統設定了許多路由,但發現有些路由有一些共同的點,比如有相同的命名空間前綴,或有相同的路徑前綴,那么就可以把有共同點的那些路由放在一個路由中,方便了管理也減少了代碼量,并且代碼看上去也更加的優雅。
路由前綴
我們把有相同前綴的路由放在一個分組里。下面是兩個有相同前綴的路由:
Route::prefix('index')->get('a', function () {
return 'a'; // 匹配/index/a
});
Route::prefix('index')->get('b', function () {
return 'b'; // 匹配/index/b
});現在,我們將他們放到一個分組中
Route::prefix('index')->group(function ()
{
Route::get('a', function () {
return 'a'; // 匹配/index/a
});
Route::get('b', function () {
return 'b'; // 匹配/index/b
});
});除了使用prefix方法外,還可以在group方法的第一個參數中設定,如下所示:
Route::group(['prefix' => 'index'], function ()
{
Route::get('a', function () {
return 'a'; // 匹配/index/a
});
Route::get('b', function () {
return 'b'; // 匹配/index/b
});
});命名空間
命名空間也是一個經常會用到的路由分組。
Route::group(['namespace' => 'Home'], function ()
{
Route::get('home/index', 'IndexController@index');
});如果上述代碼沒有設置命名空間,則上面的路由則為
Route::get('home/index', 'Home\IndexController@index');子域名
用來設定通過哪個域名可以訪問,不是這個域名即使路徑正確也不可以訪問。
Route::domain('php.cn')->group(...)名稱前綴
name方法可以為每個路由分組中路由添加一個給定前綴
Route::name('abc.')->group( function ()
{
Route::get('home', function () {
})->name('home');
});
……
$url = route('abc.home');感謝各位的閱讀!關于laravel中路由命名及路由分組的示例分析就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
新聞標題:laravel中路由命名及路由分組的示例分析-創新互聯
標題網址:http://www.yijiale78.com/article12/djgddc.html
成都網站建設公司_創新互聯,為您提供移動網站建設、網站收錄、全網營銷推廣、商城網站、企業建站、網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯