2013-08-17 3 views
0

Je voudrais modifier certains des itinéraires générés automatiquement Laravel et je ne suis pas certain si cela est en effet possible ou non.Modification Laravel 4 voies contrôleur de ressources

J'ai un modèle appelé Workspace (en utilisant Eloquent) et j'ai créé un contrôleur de ressources à l'aide artisan.

php artisan controller:make WorkspaceController 

Et j'ai aussi ajouté les routes à l'aide de cette commande dans mon dossier routes.php.

Route::resource('workspace', 'PROJECT\Controllers\Workspaces\WorkspaceController'); 

Depuis que je veux utiliser getIndex à la liste des ressources disponibles Je voudrais l'itinéraire d'index à workspaces et non workspace, alors que je voudrais garder la structure d'autres scénarios comme workspace/{id}/edit et ainsi de suite.

Savez-vous comment je peux modifier les routes par défaut qui Route::resource CRÉE?

+0

Ce n'est pas tant changer la façon dont les contrôleurs de ressources fonctionnent en jouant avec les routes en général - Vous voulez effectivement affecter des 'espaces de travail' et 'espace de travail' à la même chose. Vous pouvez utiliser la réponse de The Shift Exchange pour le faire (pour acheminer vers le même contrôleur). Sinon, vous pouvez [étendre le routeur] (https://github.com/laravel/framework/blob/master/src/Illuminate/Routing/Router.php) et remplacer de Laravel avec votre version étendue si vous voulez. – fideloper

+0

Je suppose que la vraie question est: Avez-vous une bonne raison d'affaires pour le faire? Quelque chose vous empêche de router '/ workspaces' vers' WorkspaceController @ index'? – fideloper

+0

Merci, j'ai décidé qu'il était préférable de définir moi-même toutes les routes depuis que je suis bien meilleur contrôle de leur de cette façon. – Jonathan

Répondre

1

Vous ne pouvez pas « modifier » la route ressource() en tant que telle.

Vous pouvez ajouter d'autres routes au-dessus de la ressource(), ou simplement définir chacune des routes individuellement, et donc avoir un contrôle total sur vos routes.

Read this blog about routes - it will shed some light on the issue

Un exemple pour ajouter d'autres routes que vous pourriez faire quelque chose comme:

Route::get('extra', 'PROJECT\Controllers\Workspaces\WorkspaceController'); 
Route::resource('workspace', 'PROJECT\Controllers\Workspaces\WorkspaceController'); 

Notez les routes supplémentaires sont mieux définies avant la route ressource()

+0

Très bien, merci pour votre réponse. Dommage que vous ne puissiez pas définir les routes individuelles et que vous utilisiez toujours resource(). – Jonathan

Questions connexes