Comunidad de diseño web y desarrollo en internet online

Crear un módulo de usuarios con Laravel

En esta segunda parte de tutoriales de Laravel, quiero que utilicemos los conocimientos aprendidos en la primera parte, con los cuales aprenderemos a crear nuestro primer módulo de Laravel, además les explicaré cómo validar datos, crear formularios, entre otros temas.

Vamos a hacer un módulo de usuarios, no es lo más emocionante del mundo, sí, pero casi siempre necesitaremos uno en nuestra aplicación. Vamos a ir muy paso a paso, lo primero que vamos a hacer es:

Crear las rutas y el controlador


Laravel dispone de algo llamado “Resource Controller” (traducido sería algo como “Controlador de recursos”)

Un Resource Controller sirve para crear una interfaz RESTful para un módulo.

Como este tutorial es más práctico que teórico, sólo les diré que este recurso RESTful permite definir todas las acciones para que el módulo pueda: Crear, Obtener, Actualizar y Borrar (lo que se conoce como CRUD por las siglas en ingles: Create, Red, Update, Delete)

Vamos a crear entonces todo lo que necesitamos del controlador y las rutas en 2 pasos:

Código :

Route::resource('admin/users', 'Admin_UsersController');


Esto es lo único que hace falta para vincular el “Resource Controller” a nuestras rutas.
  • El primer parámetro es la dirección desde donde comenzará a funcionar nuestro recurso, en este caso admin/users
  • El segundo parámetro es el controlador al que apunta.


Generando nuestro controlador


Laravel nos pone a disposición un sencillo comando para generar un controlador de recursos.

Abran el terminal o consola de comandos, vayan a la carpeta del proyecto (ejemplo: C:\xamp\httpdocs\pruebalaravel\) y tipeen:

Código :

php artisan controller:make Admin_UsersController


Esto generará un nuevo controlador con los métodos necesarios para nuestro módulo.

Vayan a app/controllers y verán un nuevo archivo llamado Admin_UsersController.php

Un último paso importante: Creen una carpeta llamada admin/ dentro de app/controllers, renombren el archivo a UsersController.php y colóquenlo dentro de la carpeta admin/ de modo que quede así:

Código :

app/controllers/admin/UsersController.php


Esto es importante para mantener la organización de nuestros módulos, que presumo, serían editados en un panel de administración (“admin”) y para que la ruta admin/users que escribimos antes, funcione. Ahora si abrimos el archivo controllers/admin/UsersController.php veremos lo siguiente:

Código :

<?php

class Admin_UsersController extends \BaseController {

   /**
    * Display a listing of the resource.
    *
    * @return Response
    */
   public function index()
   {
      //
   }

   /**
    * Show the form for creating a new resource.
    *
    * @return Response
    */
   public function create()
   {
      //
   }

   /**
    * Store a newly created resource in storage.
    *
    * @return Response
    */
   public function store()
   {
      //
   }

   /**
    * Display the specified resource.
    *
    * @param  int  $id
    * @return Response
    */
   public function show($id)
   {
      //
   }

   /**
    * Show the form for editing the specified resource.
    *
    * @param  int  $id
    * @return Response
    */
   public function edit($id)
   {
      //
   }

   /**
    * Update the specified resource in storage.
    *
    * @param  int  $id
    * @return Response
    */
   public function update($id)
   {
      //
   }

   /**
    * Remove the specified resource from storage.
    *
    * @param  int  $id
    * @return Response
    */
   public function destroy($id)
   {
      //
   }

}


Como ven tenemos ya definidos todos los métodos para nuestro CRUD, aunque por los momentos no hacen nada (si acceden en el navegador a /admin/users verán una pantalla en blanco). Sin embargo, podemos revisar que los métodos funcionan si retornamos un string en algunos de ellos, ademas veamos las rutas a las que están asignados:
A index se accede mediante /admin/users:

Código :

   public function index()
   {
      return 'Esta es la lista de usuarios';
   }


A create se accede mediante /admin/users/create

Código :

   public function create()
   {
      return 'Aqui va el form para crear un usuario';
   }


A show se accede mediante la URL del recurso + el ID numérico de algún registro, en este caso no tenemos ninguno, pero para probar podemos colocar cualquier número, por ejemplo: admin/users/5:

Código :

   public function show($id)
   {
      return 'Aqui mostramos la info del usuario: ' . $id;
   }


Así mismo, a edit se accede mediante la URL del recurso + un ID numérico + el segmento ‘/edit’: por darles un ejemplo: admin/users/10/edit

Código :

   public function edit($id)
   {
      return 'Aqui editamos el usuario: ' . $id;
   }


Como ya lo habrán notado, el número que colquen en la URL se pasa por parámetro a algunos de los métodos, en este caso show y edit, este número debería ser el ID de usuarios existentes en la base de datos, esto lo veremos en las partes siguientes.

También les comento que: index, create, show y edit son métodos GET. ¿Recuerdan el tutorial sobre los [url=primeros pasos con Laravel[/url]? Cuando tipeamos:

Código :

/admin/users/5 en el navegador, estamos diciendole al servidor: GET (Obten) /admin/users/5


Para acceder a los métodos restantes store, update y destroy necesitamos otros verbos / métodos: POST, PUT, DELETE. Para ello necesitaremos crear vistas y formularios que, comúnmente, son los que generan ese tipo de peticiones, así que esa será la siguiente parte que publicaremos en un par de días.

Stay tuned.

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate