2012-09-18 52 views
4

有沒有一種方法可以將所有以admin/開頭的路線分組? 我想這樣的事情,但它沒有ofcourse工作:Laravel組管理路線

Route::group('admin', function() 
{ 
    Route::get('something', array('uses' => '[email protected]')); 
    Route::get('another', array('uses' => '[email protected]')); 
    Route::get('foo', array('uses' => '[email protected]')); 
}); 

對應於這些路線:

admin/something 
admin/another 
admin/foo 

我可以ofcourse只需直接前綴的所有這些路由與admin/,但我想知道是否可以做到這一點我的方式

謝謝!

回答

3

不幸的是沒有。路線組的設計並非如此。這是來自Laravel文檔。

路由組允許您將一組屬性附加到一組路由中,從而使您的代碼保持整潔。

路由組用於將一個或多個過濾器應用於一組路由。你正在尋找的是捆綁!

介紹捆綁!

捆綁是你所追求的東西。在你的包目錄下創建一個名爲「管理員」的新包,並在你的應用程序/文件bundles.php註冊爲這樣的事情:

'admin' => array(
    'handles' => 'admin' 
) 

的處理密鑰允許你改變什麼URI捆綁將響應。所以在這種情況下,任何對admin的呼叫都將通過該捆綁包運行。然後在你的新包中創建一個routes.php文件,你可以使用(:bundle)佔位符註冊處理程序。

// Inside your bundles routes.php file. 
Route::get('(:bundle)', function() 
{ 
    return 'This is the admin home page.'; 
}); 

Route::get('(:bundle)/users', function() 
{ 
    return 'This responds to yoursite.com/admin/users'; 
}); 

希望能給你一些想法。

+0

謝謝!沒有考慮捆綁。 – EsTeGe

+0

仍然沒有解決這個問題,但與捆綁?我在問Laravel 3 – Alex

3

Laravel 4您現在可以使用prefix

Route::group(['prefix' => 'admin'], function() { 

    Route::get('something', '[email protected]'); 

    Route::get('another', function() { 
     return 'Another routing'; 
    }); 

    Route::get('foo', function() { 
     return Response::make('BARRRRR', 200); 
    }); 

    Route::get('bazz', function() { 
     return View::make('bazztemplate'); 
    }); 

});