En esta lección número 12 del Curso Primeros pasos con Laravel 5.* vamos a conocer el ORM de Laravel llamado Eloquent, con el cual podemos trabajar con la base de datos. Cada tabla está relacionada con su correspondiente Modelo, permitiéndonos interactuar para consultar los registros, así como guardarlos, modificarlos y eliminarlos, sin necesidad de trabajar directamente con sentencias de SQL.

Repositorio

Mira el código en GitHub: actual, resultado, comparación.

Notas

  • Se usó el framework CSS Bootstrap para mejorar presentación del listado de notas.
  • Para crear la relación una Note pertenece a una Category en el modelo Note creamos un nuevo método llamado category() de la siguiente manera:
    public function category()
    {
        return $this->belongsTo(Category::class);
    }
  • Generar el modelo para categorias en el directorio app:
    php artisan make:model Category
  • Para hacer la relación inversa una categoria (Category) tiene muchas notas (Note) en el modelo Category creamos el método notes() con lo siguiente:
    public function notes()
    {
       return $this->hasMany(Note::class);
    }
  • Para crear el seeder de Category:
    php artisan make:seeder CategoryTableSeeder
  • Con el método create() se crean las instancias de un modelo y se persisten dichos objetos en la base de datos, en cambio, con make() sólo se crean las instancias del modelo sin persistirlas en la base de datos.
  • Si necesitas obtener una relación asociada a una colección de Eloquent se hace llamando el método de dicha relación:
    $category->notes()
  • Si lo que quieres es obtener los registros relacionados a un objeto mediante una relación, por ejemplo: todas las notas relacionadas a una categoria escribes:
    $category->notes

    o la categoria (Category) relacionada con una nota (Note):

    $note->category
  • Para volver a generar las migraciones y cargar los registros con los seeders:
    php artisan migrate:refresh --seed

Material relacionado

Únete a nuestra comunidad en Discord y comparte con los usuarios y autores de Styde, 100% gratis.

Únete hoy

Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.

Lección anterior Paginación y carga de registros con seeders y model factories en Laravel Lección siguiente Ejercicio: mostrar los detalles de un registro con Laravel