Está en la página 1de 9

AO DEL BUEN SERVICIO AL CIUDADANO

FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

ASIGNATURA

TECNOLOGIA WEB II

TITULO

ACTIVIDAD 11 IMPLEMENTCIN DE UN CRUD CON


LARAVEL

DOCENTE

MG. ING. GARCIA CORDOVA EDY JAVIER

ALUMNO

HUERTA LEYTON LUIS GIANCARLO

PIURA-PER
1) Creando las rutas
Para empezar debes entender
cmo funcionan las rutas de Laravel. Puedes observar este ejemplo de una ruta:
Route::get('user/profile', 'UserController@showProfile')->name('profile');

Qu nos dice esta ruta? Sencillamente dice que por medio de una URI
(platzi.laravel/user/profile), se conectar con el controlador (UserController). Este acceder al
mtodo showProfile, y finalmente tenemos un alias para vincular a la ruta. Es sper simple, pero no
es la nica forma de crear rutas, la documentacin de Laravel detalla muchas maneras de usarlas.
Para nuestro ejemplo de CRUD usaremos una ruta resource:
Route::resource('users', 'UserController');

Esta nos permite agrupar 7 rutas, como vemos en la imagen.

Si
entras a tu terminal y en la ruta de tu proyecto tipeas: php artisan route:list, se te listarn todas las
rutas creadas y un breve detalle.

2) Creando el controlador
Como te habrs dado cuenta, nuestra ruta apunta a un controlador llamado UserController. Sin
embargo si nos vamos a la carpeta app/Http/Controllers no existe ese controlador. Utilizaremos la
"magia" de Artisan para crearlo. En tu terminal escribe:
php artisan make:controller UserController --resource
Qu dicen si nos fijamos ahora?
As es! Como lo imaginaron, ah est el controlador y adems todos los mtodos que necesitamos
utilizar. Intuitivamente, cada mtodo nos dice por su nombre qu debemos hacer. Pero si no te
queda claro te lo escribo en una lnea:
index: Lo utilizaremos para mostrar la pgina inicial.
create: Lo utilizaremos para mostrar el formulario de registro.
store: Este mtodo es importante, lo usaremos para recuperar los datos escritos en el
formulario y lo guardaremos en nuestra base de datos.
Destroy: Lo utilizaremos para eliminar a un usuario.
edit: Con este mtodo mostraremos el formulario de edicin.
update: Con este mtodo editaremos el registro.

namespace: Nos permite definir la ubicacin donde se encuentra la clase. use: Nos permite llamar
a otras clases para poder utilizarlas, estas clases estn registradas como alias en:
app/config/app.php, Laravel nos brinda mltiples clases para manejar (Session, mail, request, auth,
events, files, etc...). extends: Es una palabra reservada para extender a una clase padre. El famoso
concepto de herencia de POO. En el caso de los controladores, estos extienden a una clase padre
llamada Controller.php.

3) Listar usuarios
El primer reto ser listar los usuarios de una tabla llamada user. Aqu haremos un parntesis de
configuracin:
Ponemos dentro de .env
DB_DATABASE=nameBD
DB_USERNAME=root
DB_PASSWORD=passwordBD

Con esto nos estaremos conectando a nuestra base de datos.


Laravel por defecto trae dos tablas, users y migration, que se ubican en database/migrations.
php artisan migrate

Con esto estamos ejecutando los archivos de migracin para transformarlos en tablas.
Retomemos el listar...
Para listar a los usuarios, tenemos que llamar al modelo desde nuestro controlador, y luego utilizar
un poco de la magia de eloquent. Modelo: ser la representacin de nuestra tabla, Laravel nos
permite manejar la tabla como un objeto. Agrega el modelo (User.php) a nuestro controlador
(UserController.php):
use App\User;

En el mtodo "index", de UserController, escribimos lo siguiente:


//Traemos todos los registros de los usuarios.

$data = User::all();
//Enviamos esos registros a la vista.

return view($this->path.'.index', compact('data'));

Quizs te preguntes, y ese $this->path, qu es y dnde est? Es simple, lo tienes que agregar como
una propiedad y asignarle un valor inicial que nos diga cul es la carpeta donde colocaremos las
vistas para este mdulo de usuarios. De esta manera si en algn momento movemos de carpeta a
nuestras vistas para user o renombramos la carpeta solo tendramos que cambiar la propiedad path.
Algo que no puedo olvidar de mencionar: User::all() trae todos los usuarios de la tabla users, pero
cmo lo hace? Abre app/User.php y vers que esa clase se conecta con la tabla users y utilizando el
ORM de ELOQUENT agregando ::all() le estamos diciendo que traiga todos los registros, olvdate
del select * from users: ELOQUENT lo hace por ti.

Listar usuarios en mi HTML


En el paso anterior mandamos a todos los usuarios a la vista, pero ahora nos falta manipular esta
informacin en la vista y mostrarlas. Veremos trabajar a Blade! Desde nuestro controlador,
enviamos una variable llamada data a la vista index.blade.php. Tenemos que recoger esa variable y
decirle lo siguiente:
Si la variable $data tiene contenido pinta la tabla.
Una vez dentro de la condicin, hacemos un recorrido @foreach
Este recorrido comenzar a mostrar fila x fila los usuarios registrados de la tabla.
Una vez realizado estos pasos, puedes abrir tu proyecto en el explorador; en mi caso configur un
dominio local:
http://platzi.laravel/users

Por ahora debera salir en blanco ya que no tenemos registros...

4) Registrando usuarios
Para registrar a los usuarios dividiremos la explicacin en dos, la primera parte de como mostrar un
formulario en una vista, y la segunda parte de como guardar los datos escritos desde el formulario
en la tabla users. Ahora usaremos dos mtodos, empezamos por el mtodo create, donde
escribiremos lo siguiente:
return view($this->path.'.create');

Como quizs hayas adivinado, esta vista (create.blade.php) no existe, y si te has dado cuenta
tambin debe estar en la carpeta de resources/views/users.
Te muestro mi cdigo HTML, estoy poniendo tres cosas importantes:
Vnculo para ir a la lista de usuarios creada en el paso (3)
href="{{ route('users.index') }}">Listar usuarios

La accin es post, y se redirigir a la ruta users. Ojo, no es la misma ruta, est usando un verbo
diferente.
form method="post" action="/users">

Laravel nos deja prolijo el formulario contra ataques, aadiendo un token por cada envo de
formulario. Este token tiene una duracin temporal que te da la confianza necesaria para
implementar envo de datos por formularios.
input type="hidden" name="_token" value="{{ csrf_token() }}">

Registrando en la tabla:users
Tenemos que recoger los valores del formulario e ingresarlos a la tabla users. Como vers en el
mtodo store, uso un try - catch para controlar la accin del guardar. Esto no es del todo necesario,
pero siempre es importante controlar los errores por si algo llega a romperse. En la parte superior he
agregado use Exception; Si todo registr correctamente lo redirecciono a la lista de usuarios.
Una vez registrado el usuario deberan aparecer de la siguiente manera los registros hechos:

Recordemos como est nuestra vista de listar (index.blade.php):

5) Actualizar usuario
La lgica de edicin es simple, necesitamos decirle a quin queremos editar, y qu es lo que
estamos editando. En nuestra tabla debemos buscar ese registro y cambiar la informacin por la
nueva data.
Con findOrFail buscamos por su llave primaria id la coincidencia de $id. Si no lo encuentra votar
un error.
$user = User::findOrFail($id);

Ese resultado lo guardamos en la variable $user y se lo mandamos a la vista para poder rellenar el
formulario.
return view($this->path.'.edit', compact('user'));

De esta manera quedara nuestro HTML, un formulario donde colocamos dentro de cada input el
valor del registro, utilizando el objeto enviado desde el controlador. Fjate que en el formulario
enviamos un input oculto donde le indicamos que el verbo es PUT.
Ahora necesitamos actualizar la tabla si cambiamos de contenido. Para ello recuperaremos todos los
inputs, dentro del mtodo update. Recuperando el registro que coincida con el id empezaremos a
llenar cada columna con cada valor. Finalmente utilizamos el alias retornar a la lista de usuarios.

6) Eliminar usuario
Para eliminar es sper sencillo, Laravel nos hace la vida facil. La lgica es decirle a Laravel a
quin queremos eliminar y listo, registro eliminado.
La vista de listar (index.blade.php) tiene un botn de eliminar que trae a este mtodo el $id
del usuario, con esto podemos encontrar al usuario y pasarle la accin eliminar.
Como ves arriba, uso un try - catch, nuevamente... Para terminar de entender este tema te
recomiendo aprender ms sobre exceptions.

REFERENCIAS BIBLIOGRAFICAS

https://platzi.com/blog/crud-laravel/