En esta lección vamos a comenzar el desarrollo del módulo CRUD de usuarios reemplazando el listado estático de usuarios con los registros que se encuentran en la base de datos. Para ello utilizaremos el constructor de consultas de Laravel y el ORM Eloquent.
Repositorio
Ver el código de esta lección en GitHub
Notas
Obtener registros desde la base de datos
Reemplazamos el listado estático con un listado dinámico que vamos a cargar desde la base de datos. Utilizando get()
obtenemos todos los registros que se encuentran en la tabla pasada como argumento al método table
:
$users = DB::table('users')->get();
Necesitamos importar el facade DB
al principio del archivo:
use Illuminate\Support\Facades\DB;
La variable $user
dentro del ciclo @forelse
ya no contiene una cadena de texto sino un objeto. No podemos imprimir estos objetos como si se trataran de una cadena, pero sí podemos imprimir las propiedades de cada objeto:
@forelse($users as $user) <li>{{ $user->name }}</li> @empty <li>No hay usuarios registrados.</li> @endforelse
Obtener registros con Eloquent
Podemos utilizar Eloquent para obtener los datos que se encuentran en la base de datos. Utilizando all()
podemos obtener todos los registros que se encuentran en la tabla:
$users = User::all();
Debemos importar el modelo al principio del archivo:
use App\User;
Al imprimir directamente $user
dentro de la directiva @forelse
sin llamar a ninguna propiedad, se imprime una representación en JSON de cada usuario. Esto es debido a que al utilizar Eloquent obtenemos una colección de objetos donde cada objeto representa una instancia de la clase User
(un modelo de Eloquent), los cuales incluyen esta funcionalidad. Puedes aprender más sobre el uso de métodos mágicos en PHP con la lección Uso de los métodos mágicos __toString y __invoke en PHP de nuestro Curso de programación orientada a objetos con PHP.
Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.
Lección anterior Módulo de usuarios con Laravel Lección siguiente Configuración y uso de base de datos en el entorno de pruebas automatizadas con Laravel y PHPUnit