Laravel controlador y enrutado
Publicado en 25 julio, 2014
Para no definir todo la lógica a nivel de ruta en el fichero route.php, podemos utilizar Controller classes. Los controladores se almacenan en app/controllers (aunque pueden almacenarse en otras rutas).
Controlador Basico
UserController.php ( La clase se llamara igual que el fichero)
class UserController extends BaseController {
/**
* Show the profile for the given user.
*/
public function showProfile($id)
{
$user = User::find($id);
return View::make(‘user.profile’, array(‘user’ => $user)); {{– Muestra la plantilla view/user/profile.blade.php y le pasa un array –}}
}
}
Para utilizar este controlador deberemos introducir la ruta en route.php
Route::get(‘user/{id}’, ‘UserController@showProfile’); {{–Cuando llamemos a la url http://misitio/user/{id} no direccinoara a la el controlador UserController metodo showProfile–}}
Se pueden definir en las rutas:
Route::get(‘profile’, array(‘before’ => ‘auth’, ‘uses’ => ‘UserController@showProfile’));
O en los controladores:
class UserController extends BaseController {
/**
* Instantiate a new UserController instance.
*/
public function __construct()
{
$this->beforeFilter(‘auth’, array(‘except’ => ‘getLogin’));
}
}
Controladores RESTful
Con este tipo de controladores ahorraremos mucho código.
La forma de llamarlo en route.php es la siguiente:
Route::controller(‘users’, ‘UserController’); {{– Solo pondremos la URI y en nombre del controlador–}}
Controlador:
UserController.php
class UserController extends BaseController {
{{– Los métodos tendrán el nombre compuesto por el método HTTP (get, post, ect…), más el nombre de la URI –}}
public function getIndex() {{– Este es el método inicial que utiliza la URI de el fichero de rutas (users)–}}
{
//
{{– El enrutado para el resto de métodos es users/URI–}}
public function postProfile() {{– –}}
{
//
}
public function anyLogin()
{
//
}
}
Controladores Resource
Este controlador hace fácil construir controladores RESTful en torno a los recursos.
Par crear controladores a traves de la linea de comando, (podemos crear el controlador solo con los métodos que le indiqumos):
php artisan controller:make NombreuriController
php artisan controller:make NombreuriController –only=index,show
php artisan controller:make NombreuriController –except=index
Nos creara un fichero controlador con todos los metodos que necesitamos en app/controllers/NombreController.php
Erutamos a nuestro nuevo controlador en route.php, (podemos enrutar solo los métodos que necesitemos):
Route::resource(‘uri’, ‘NombreuriController’);
Route::resource(‘uri’, ‘NombreuriController’,
array(‘only’ => array(‘index’, ‘show’)));
Route::resource(‘uri’, ‘NombreuriController’,
array(‘except’ => array(‘create’, ‘store’, ‘update’, ‘destroy’)));
Documentación:
http://laravel.com/docs/controllers

¿Algo que comentar?
Lo siento, debes estar conectado para publicar un comentario.