Tabela Pivot
[Finalizado Pelo Aluno]
Criador
Wesley Kovalski
Em uma situação em que temos as tabelas (products, product_categorys, tenants) e uma tabela pivot (product_tenant).
Como exibir uma listagem, ao acessar um tenant específico, e exibir essas colunas:
NOME DO PRODUTO | NOME DA CATEGORIA
Criador
Wesley Kovalski
Consegui fazer, mas queria ver se é correto fazer assim:
if (empty($request['filter'])) {
$tenantProducts = $this->entity::join('product_tenant', 'tenants.id', '=', 'product_tenant.tenant_id')
->join('products', 'products.id', '=', 'product_tenant.product_id')
->join('product_categorys', 'products.product_category_id', '=', 'product_categorys.id')
->select('tenants.name AS name_tenant','products.id', 'products.name', 'products.active', 'product_categorys.name AS name_category')
->whereRaw("tenants.id = {$tenant}")
->orderBy('products.name', 'ASC')
->paginate($totalPage);
// ->toSql();
return $tenantProducts;
}
$filter = $request['filter'];
$tenantProducts = $this->entity::join('product_tenant', 'tenants.id', '=', 'product_tenant.tenant_id')
->join('products', 'products.id', '=', 'product_tenant.product_id')
->join('product_categorys', 'products.product_category_id', '=', 'product_categorys.id')
->select('tenants.name AS name_tenant','products.id', 'products.name', 'products.active', 'product_categorys.name AS name_category')
->where('products.name', 'LIKE', "%{$filter}%")
->whereRaw("tenants.id = {$tenant}")
->orderBy('products.name', 'ASC')
->paginate($totalPage);
// ->get();
// ->toSql();
return $tenantProducts;
OBS: quando eu rodo o ->toSql() o valor que está dentro da variável $filter vem vazio, porque será?
OBS: quando eu rodo o ->toSql() o valor que está dentro da variável $filter vem vazio, porque será?
Manager
Carlos Ferreira
Olá, Wesley!
Tudo bem?
É assim mesmo, quando faz o dump, mostra apenas a query, e não os valores da consulta;
--
Sobre a query, está correta, usar join é válido. Talvez você pode explorar um pouco mais os relacionamentos, e usar with() para buscar dados relacionados de forma mais simplificada;
Criador
Wesley Kovalski
Muito obrigado, irei estudar esses relacionamentos para refatorar essa query que fiz. Forte abraço!
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!