3 Formas de fazer cruzamentos em Laravel

  • Autor Autor Senpai19899
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
Senpai19899

Senpai19899

Gamma
No recomendado
Usuário com poucas negociações! Use sempre o saldo do 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);
    }
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
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.
 
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.
 
Voltar
Topo