2013-06-10 5 views
1

J'essaie de définir des routes nommées avec un contrôleur RESTful. Dans mon routes.php J'ai ceci:Laravel 4 - Routes nommées dans les contrôleurs RESTful

Route::controller('blog', 'BlogController', array('getIndex' => 'home')); 
Route::controller('login', 'LoginController'); 

Et la méthode BlogController:

public function getIndex() 
{  
    return View::make('blog.home'); 
} 

Lorsque je tente d'accéder /home Je reçois un NotFoundHttpException, toutes les autres routes fonctionne comme prévu.

Cela ne devrait-il pas fonctionner? J'ai trouvé ce troisième paramètre pour Route :: controller() à this post.

+0

Monsieur Bruni, veuillez convertir vos commentaires en réponses. – user2094178

+0

Ok ... J'ai converti mes commentaires à une réponse (et supprimé les commentaires). –

Répondre

2

Le "nom de la route" est interne.

Citant le mentioned post: « vous pouvez passer un tableau de noms de méthode et leur nom d'itinéraire correspondant le troisième paramètre à Route::controller » ...

Alors, votre tableau attache getIndex méthode au nom de l'itinéraire home . Mais "nom de la route" est une chose, interne à l'application, mais pas une URL accessible de l'extérieur, que vous essayez de l'utiliser.

Vous pouvez joindre l'URL à la route appelée avec quelque chose comme ceci:

Route::get('home', array('as' => 'home'));

Dans ce cas, la première « maison » est la partie de l'URL, tandis que le second « maison » est la route name (que vous avez attaché à la méthode "getIndex"). Voir http://laravel.com/docs/routing#named-routes

Avec une route nommée, nous pouvons utiliser un identificateur pour un itinéraire (par exemple, le nom de « tableau de bord »), mais plus tard, à tout moment, nous pouvons le rendre accessible par une URL, sans la nécessité de faire une recherche globale et remplacer tout au long du code de l'application. Nous pouvons attacher le chemin de l'URL "principal" ou "home" au "tableau de bord" nommé route ... alors ... "le nom de la route est interne".

+0

Merci pour la clarification! J'essayais l'inverse. – user2094178

Questions connexes