Por supuesto, nuestro trabajo con los repositorios no está completo, si aún estamos usando Eloquent para grabar tickets, votos y comentarios.

La idea de los repositorios no es sólo mostrar sino también persistir datos (es decir, ejecutar las operaciones de INSERT, UPDATE y DELETE), ya sea que nos apoyemos en un ORM como Eloquent o que estemos escribiendo consultas manualmente usando PDO u otro componente.

Considera el siguiente ejemplo:

    $ticket = $auth->user()->tickets()->create([
        'title'  => $request->get('title'),
        'status' => 'open'
    ]);

No sólo seguimos usando Eloquent en el controlador, sino que estamos atando 3 componentes de Laravel en una simple línea ¿Puedes verlos? Son: Auth, Eloquent y Request. Este código no es nada reusable, sería por ejemplo imposible crear un ticket para otro usuario que no sea el usuario conectado, sin hacer cambios al código.

¿Te imaginas cómo podrías separar la lógica de Eloquent para crear un ticket del resto de los componentes de Laravel y crear así otro método en el repositorio de Ticket? Esto es lo que veremos en la clase de hoy.

Regístrate en Styde

Para obtener acceso a ésta y a todas nuestras lecciones y cursos premium:

Ver planes

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

Lección anterior Repositorio base (repaso de clases abstractas y herencia) Lección siguiente jQuery y Laravel:Funcionalidad para votar con AJAX