Liaison Route-Controleur sous Laravel 4

Notre premier devoir sous Laravel 4, c’est de créer nos routes, et oui sans routes pas de site :)
Les routes sont dans un seul fichier app/routes.php mais rien ne nous empêche de le scinder en 2 par exemple routes.php pour le back-office et routes.front.php(ou admin) pour le front-office; ça peut éviter de mélanger les torchons avec les serviettes.


Il est possible de créer des routes avec les méthodes
Route::get( url, controleur@action) et Route::post( url, controleur@action) ou, « action » est la méthode appelée du contrôleur. C’est clairement la méthode la plus directe mais aussi la moins souple donc a utiliser le moins possible si vous ne voulez pas d’un fichier routes.php rapidement illisible donc ingérable.


le controleur  RESTful

Il est aussi possible de déclarer une route non plus sur une action mais directement sur un contrôleur :
Route:controller( url, [namespace\]Controleur );
ici, nous donnons tout un panel d’url à un seul contrôleur; par exemple :

Route::controller('/produits', 'ProduitsController')

peut se traduire par :

Route::get( '/produits' , 'produitsController@getIndex' )
Route::get( '/produits/action' , 'produitsController@getAction' )
Route::get( '/produits/action/{id}' , 'produitsController@getAction(id)' )
Route::get( '/produits/action/{id}/4/toto/77' , 'produitsController@getAction(id)' )
Route::post( '/produits/action' , 'produitsController@postAction' )/* désolé trop de solutions ... */

Il faut donc retenir que le premier « dossier » après l’url représente l’action (la méthode) qui sera appelée dans le contrôleur. Cette méthode débutera par « get » ou « post ». Il nous suffit donc d’écrire une méthode pour répondre a une action spécifique ( getVoir, postAjouter, getPrevisualiser, getEditer,…)

Si la méthode recherchée n’est pas trouvée, Laravel renvoie une erreur 404. ce qui est normal si je tape : /produits/QuiEstLePlusFort?
Mais il est possible d’ajouter une méthode a notre contrôleur :

public function missingMethod($parameters)
{
    // je repond a tout meme a : quiestleplusfort !
}

missingMethod() sera appelée automatiquement si aucune méthode (get..post) n’est trouvée.


Le contrôleur de ressource

Il existe un type particulier de Controleur : le controleur de ressource, mais en fait ce n’est qu’un contrôleur restfull avec juste des routes prédéfinies.

Ce contrôleur a 7 actions(routes) prédéfinies : index, create,store,show,edit,update,destroy
Allez voir la documentation pour plus de détail mais c’est un contrôleur particulier, qui en fait répond juste a une normalisation, on aime ou pas…


Le blog de bestMomo nous parle aussi des Routes et des Contrôleurs .

 

Share Button

Vous devriez aimer...