3 Formas de Hacer Cruces en Laravel

  • Autor Autor Senpai19899
  • Fecha de inicio Fecha de inicio

Senpai19899

No recomendado
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
En esta oportunidad veremos rápidamente como hacer cruces con laravel, la logica es similar en la mayoria de frameworks de php menos en codeigniter.

Ejemplo 1:

En este ejemplo hacemos un cruce entre 3 tablas, donde nos trae todo agregando la condición del email, para eso usamos la clase DB

PHP:
$users = DB::table('users as u')
     ->leftJoin('users_products as up', 'u.id', '=', 'up.user_id')
     ->leftJoin('products as p', 'p.id', '=', 'up.product_id')        
     ->select('*')
     ->where('u.email', $email)    
     ->get();

Ejemplo 2:

En este ejemplo aplicamos el select con el uso del modelo

PHP:
$media = GalleryModel::select('attachment.type as mime', 'attachment.media_type', 'galleries.price', 'galleries.ownerId as modelId', 'galleries.id as galleryId', 'attachment.mediaMeta', 'attachment.path')
        ->join('attachment', 'attachment.parent_id', '=', 'galleries.id')
        ->where('attachment.media_type', 'image')
        ->where('galleries.type', 'image')
        ->where('attachment.id', $id)
        ->first();

Ejemplo 3 (En el Modelo):

En este ejemplo tenemos muchas quotas, si quisiéramos resumir los ejemplos de los 2 querys anteriores, en nuestro controlador podemos acceder al método de la relación
PHP:
     public function quotes(){
   
         return $this->hasMany(Quote::class);
    }
 
Gracias por la explicación detallada y los ejemplos. Esta es sin duda una gran guía para hacer cruces en Laravel usando diversas técnicas. Muy útil para aquellos que están buscando más formas de manejar las relaciones entre tablas en Laravel.
 
Es mejor siempre aprovechar las bondades de ORM No?
 
Lo recomendable es mantenerse siempre dentro del framework usando el ORM. Aunque a veces esta bueno saber hacer los joins por si te toca trabajar con tablas heredadas que no estan dentro del ORM.