2014-04-23 3 views
1

J'ai un cas de routage comme ceci:Laravel 4 Routage plus efficace?

// Game 
Route::get('game/p/{action}', '[email protected]'); 
Route::get('game/e/{id}', '[email protected]'); 

Route::post('game/p/add', '[email protected]'); 

// GameCategory 
Route::get('gamecategory/p/{action}', '[email protected]'); 
Route::get('gamecategory/e/{id}', '[email protected]'); 

Route::post('gamecategory/p/add', '[email protected]'); 

// Deposit 
Route::get('deposit/p/{action}', '[email protected]'); 
Route::get('deposit/e/{id}', '[email protected]'); 

Route::post('deposit/p/update', '[email protected]'); 

Comme on peut le voir ici, le code est assez répétitif, mais certains module utilise uniquement certains Controller et leur modèle de route est similaire.

J'ai été googling et constaté que Route::resource peut raccourcir cela mais je n'ai aucune idée comment l'implémenter dans mon cas. Est-ce que quelqu'un peut m'aider? Merci

Répondre

1

Comme votre schéma de routage semble plutôt non conventionnel, il n'y a pas de méthode d'assistance qui pourrait atteindre ce que vous voulez. Ce que vous pouvez faire est d'écrire votre propre fonction d'assistance qui prend le nom de la route ('jeu', 'gamecategory', 'dépôt') et le nom du contrôleur ('GameController' et ainsi de suite) et génère les routes que vous voulez à partir de ce.

function _register_routes($path, $controller) 
{ 
    Route::get("{$path}/p/{action}", "{$controller}@getPage"); 
    Route::get("{$path}/e/{id}", "{$controller}@edit"); 
    Route::post("{$path}/p/add", "{$controller}@add"); 
} 

_register_routes('game', 'GameController'); 
_register_routes('gamecategory', 'GameCategoryController'); 
+0

Ouais cela fonctionne, pourquoi je n'y pense pas? Merci – user2002495