Como crear un CRUD con Laravel 5.6 – Parte 2
En esta página:
Demo
En este capitulo vamos a continuar el tutorial Como crear un CRUD con Laravel 5.6 – Parte 1 en donde veremos aspectos muy importantes como la creación de un Controlador, Las Vistas con los Formularios en donde el usuario va poder Crear, Eliminar, Actualizar y Eliminar Registros en la Base de Datos, vayamos con el Artículo.
NOTA:
La librería “Laravel Collective” que usamos en este tutorial para crear los formularios del CRUD, ha quedado obsoleta, esto no depende de nosotros si no de los Desarrolladores que dan soporte a esta librería, ellos decidieron darle de baja.
Si crees que aún te sirve el resto del código ADELANTE, si no es así estamos trabajando en un nuevo tutorial “Como crear un CRUD con Laravel 5.8” el cual estaremos publicando en las próximas semanas, dentro de este tutorial explicaremos como crear formularios en las versiones modernas de Laravel.
El Nuevo Tutorial ya se encuentra en este enlace: Como crear un CRUD con Laravel 5.8 y Bootstrap 4 – Parte 1
Partes
Controlador Postres
Ahora debemos crear el Controlador Postres que unirá el Modelo Postres con las Vistas del CRUD, ejecuta el siguiente comando para crearlo
1 2 3 4 |
php artisan make:controller PostresController Controller created successfully. |
Dirigete a app > Controllers y encontrarás el nuevo archivo creado Postres.php abre este archivo
1 2 3 4 5 6 7 |
/app ├──Controllers ├── Controller.php ├── PostresController.php // Abre esté archivo /bootstrap |
Cuando abres el archivo PostresController.php verás la clase principal del Controlador
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class PostresController extends Controller { // } |
Dentro de esta clase vamos a crear los métodos para realizar cada acción en nuestro CRUD, antes de pasar a crear los métodos, agregamos los siguientes Traits para dar soporte al guardado y almacenamiento de datos en el servidor como DB, Input, Storage y también debes de hacer llamado al modelo Postres que creamos anteriormente
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Postres; // Instanciamos el modelo Postres use App\Http\Requests; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Validator; use DB; use Input; use Storage; class PostresController extends Controller { // } |
CRUD
El primer método que crearemos será CREATE que en español significa Crear.
Crear (Create)
Bien aparte del método Create debemos integrar el Modelo Postres con la Vista del Formulario para crear un registro, entonces primero haremos llamada a la vista de este formulario para crear registros nuevos, agregamos lo siguiente
1 2 3 4 5 6 7 |
public function create() { $postres = Postres::all(); return view('admin.postres.create', compact('productos')); } |
Paso seguido colocamos el método store() en donde llamamos al Modelo Postres y recepcionamos los datos que son enviados desde el formulario, luego redireccionamos a la vista postres y lanzamos un mensaje que diga ‘Guardado Satisfactoriamente’ agregamos lo siguiente
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
public function store($request) { $postres = new Postres; $postres->nombre = $request->nombre; $postres->precio = $request->precio; $postres->stock = $request->stock; $postres->imagen = $request->file('imagen')->store('postres'); $postres->save();; return redirect('admin/postres')->with('message','Guardado Satisfactoriamente !'); } |
Hasta aquí ya tenemos creado nuestro método dentro del Controlador para crear un nuevo registro en la Base de Datos, nuestro código debe de haber quedado así
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Postres; // Instanciamos el modelo Postres use Session; use Redirect; use App\Http\Requests; use App\Http\Controllers\Controller; use App\Http\Requests\ItemCreateRequest; use App\Http\Requests\ItemUpdateRequest; use Illuminate\Support\Facades\Validator; use DB; use Input; use Storage; class PostresController extends Controller { /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { $postres = Postres::all(); return view('admin.postres.create', compact('postres')); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(ItemCreateRequest $request) { $postres = new Postres; $postres->nombre = $request->nombre; $postres->precio = $request->precio; $postres->stock = $request->stock; $postres->imagen = $request->file('imagen')->store('postres'); $postres->save(); return redirect('admin/postres')->with('message','Guardado Satisfactoriamente !'); } } |
Leer (Read)
Ahora agregaremos el método index() para Leer o listar los datos desde la base de datos, en este método listamos todos los registros desde la Base de Datos en la vista index, para esto agrega lo siguiente
1 2 3 4 5 6 7 |
public function index() { $postres = Postres::all(); return view('admin.postres.index', compact('postres')); } |
Entonces hasta ahora nuestro código debería de quedar así
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Postres; // Instanciamos el modelo Postres use Session; use Redirect; use App\Http\Requests; use App\Http\Controllers\Controller; use App\Http\Requests\ItemCreateRequest; use App\Http\Requests\ItemUpdateRequest; use Illuminate\Support\Facades\Validator; use DB; use Input; use Storage; class PostresController extends Controller { /** * Show the application dashboard. * * @return \Illuminate\Http\Response */ public function index() { $postres = Postres::all(); return view('admin.postres.index', compact('postres')); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { $postres = Postres::all(); return view('admin.postres.create', compact('postres')); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(ItemCreateRequest $request) { $postres = new Postres; $postres->nombre = $request->nombre; $postres->precio = $request->precio; $postres->stock = $request->stock; $postres->imagen = $request->file('imagen')->store('postres'); $postres->save(); return redirect('admin/postres')->with('message','Guardado Satisfactoriamente !'); } } |
Actualizar (Update)
Vamos a crear en nuestro Controlador Postres un método para actualizar los registros, pero primero haremos llamada a la Vista con el Formulario para editar un registro, agrega lo siguiente
1 2 3 4 5 6 7 |
public function edit($id) { $postres = Postres::find($id); return view('admin/postres.edit',['postres'=>$postres]); } |
Ahora crearemos el método edit() en donde recepcionamos el id del registro que editaremos, llamamos a nuestro Modelo Postres, luego recibimos todos los datos enviados desde el formulario para editar un registro, por último redireccionamos a la vista principal y lanzamos un mensaje ‘Editado Satisfactoriamente’, para ellos agregamos lo siguiente
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
public function update(ItemUpdateRequest $request, $id) { $postres = Postres::find($id); $postres->nombre = $request->nombre; $postres->precio = $request->precio; $postres->stock = $request->stock; if ($request->hasFile('imagen')) { $postres->imagen = $request->file('imagen')->store('postres'); } $postres->save(); Session::flash('message', 'Editado Satisfactoriamente !'); return Redirect::to('admin/postres'); } |
En el método update() verificamos que al editar el registro se adjunte o no una imagen nueva, para evitar problemas en la edición
1 2 3 4 5 |
if ($request->hasFile('imagen')) { $postres->imagen = $request->file('imagen')->store('postres'); } |
Eliminar (Delete)
Creamos el método destroy() para eliminar los registros, pasamos el id del registro que se eliminará, luego borramos la imagen del registro, paso seguido redirecionamos al usuario a la vista principal con un Mensaje que diga ‘Eliminado Satisfactoriamente’, agregamos lo siguiente
1 2 3 4 5 6 7 8 9 10 11 12 |
$imagen = Postres::find($id); foreach($imagen as $image){ Storage::delete($image['imagen']); } Postres::destroy($id); Session::flash('message', 'Eliminado Satisfactoriamente !'); return Redirect::to('admin/postres'); |
Con esto entonces tenemos todos los métodos para gestionar los registros en nuestra Base de Datos.
Conclusión
En este capitulo tenemos todos los métodos necesarios para trabajar con el paradigma CRUD, es importante lo repases bien para que en el siguiente capitulo puedas integrarlo con las vistas del usuario.
Síguenos en las Redes Sociales para que no te pierdas nuestros próximos contenidos.
- Tutoriales
- 14-10-2018
- 08-11-2019
- Crear un Post - Eventos Devs - Foro