jairogarcíarincón

Noticias en el front-end


1.51K

Introducción



En este apartado aprenderemos a trabajar con un modelo en Laravel, aprendiendo la manera de crear además tanto la tabla de la base de datos asociada a ese modelo como su controlador.


Creación de archivos



Vamos a utilizar el comando artisan para la creación rápida de controladores y modelos.

Los controladores se crearán dentro de la carpeta app/Http/Controllers, mientras que los modelos se crearán en app/Http/Models.

Dicho esto, el comando para crear un modelo Noticia desde la consola, así como su controlador NoticiaController asociado (flag -c) y un archivo de migration para la posterior creación de la tabla (flag -m) sería el siguiente:



Si ahora revisas tus carpetas app/Http/Controllers y database/migrations (probablemente tengas que actualizarlas en tu IDE o bien volverlas a descargar por completo), comprobarás que se han creado diferentes archivos.


app/Models/Noticia





Todos los modelos que creemos extenderán la clase Illuminate\Database\Eloquent\Model, lo cual nos permitirá, como veremos más adelante, trabajar con la tabla de la base de datos de manera muy sencilla.

Por defecto y convención del inglés, el modelo trabajará con una tabla cuyo nombre será el nombre del modelo en minúsculas seguido de una s (noticias), si bien eso lo podríamos cambiar añadiendo al modelo la variable protegida $table = "nombre-de-la-tabla".


app/Http/Controllers/NoticiaController.php



El controlador extiende a la clase Controller principal, igual que el AppController que crearemos manualmente, y utilizará la clase Illuminate\Http\Request para gestionar los formularios.

Más adelante añadiremos métodos para las acciones que necesitemos (listar, editar, crear, activar, mostrar en home, etc.).


database/migrations/yyyy_mm_dd_hhiiss_create_noticias_table.php





Con este archivo podremos crear la tabla noticias desde la consola, si bien previamente deberíamos modificarlo para que incluya los campos necesarios:



Todas las opciones disponibles las puedes encontrar en la dirección https://laravel.com/docs/8.x/migrations.


Realizar la migración



Para finalizar, tan solo debes ejecutar desde la consola el comando:



Si ahora consultas tu base de datos, verás que se ha creado la tabla noticias con todos los campos indicados, así como la tabla migrations para almacenar las migraciones que ya se han ejecutado y las tablas users y otras más, que estaban pendientes de una migración por defecto de Laravel y de las que hablaremos en el apartado de usuarios (Auth).

IMPORTANTE: Si estás en la consola como usuario root, al ejecutar el comando anterior es posible que se haya generado un archivo de log con usuario root que Laravel no es capaz de leer, lanzando un error de permisos en el navegador.

Para resolverlo, modifica el usuario de dicho archivo (o directamente de la carpeta storage/logs) completa para que pertenezca a www-data:www-data mediante el comando sudo chown -R www-data:www-data storage/logs (desde la raíz de tu proyecto).


Creación de contenido de ejemplo



Una vez creada la tabla y para finalizar este apartado, podríamos añadir contenido de ejemplo desde la consola SQL de la siguiente forma:



En el siguiente apartado mostraremos estas noticias en las distintas vistas del front-end.


Publicado el 21 de Mayo de 2022

bloggestor de contenidoslaravelphpcssjquery