Duvida com relacionamento models laravel
Boa tarde pessoal ,
Tenho um projeto de estudo no laravel, ao qual ja esta com 70% de caminho andado , mas tive a necessidade de fazer uma mudança ao qual não consigo aplica-la.
No basico , tenho 3 tabelas:
-> Produtos = tabela-> produtos
-> ProdutosGrupos = tabela-> produtos_grupos
-> ProdutosTipos = tabela-> produtos_tipos
Model Produto
public function getGrupo(){
return $this->belongsTo('Henrique\ProdutosGrupos', 'id_grupo', 'id');
}
// 1 produto possui 1 tipo
public function getTipo(){
return $this->belongsTo('Henrique\ProdutosTipos','tipoProduto_id' , 'id' );
}
Model ProdutosGrupos
// 1 grupo possui muitos produtos
public function getProdutos(){
$query = $this->hasMany('Henrique\Produtos', 'id_grupo');
return $query;
}
public function getProdutosAtivos(){
$query = $this->hasMany('Henrique\Produtos', 'id_grupo');
//condiçao para pegar somente os produtos marcados como ativo
$query = $query->where('produtos.ativo', '=' , '1');
return $query;
}
Models ProdutosTipos
public function getProdutos(){
$query = $this->hasMany('Henrique\Produtos', 'tipoProduto_id');
return $query;
}
Assim, na minha view , faço a seguinte consulta
ProdutosGrupos::with('getProdutosAtivos')->where('produtos_grupos.ativo','=','1')->get();
Na hora de imprimir , fica da seguinte maneira :
Grupo 1 ;
->Produto 1;
->Produto 2;
->Produto 3;
Grupo 2:
->Produto 4;
->Produto 5;
etc
Então , eu gostaria de listar o Grupo , o tipo do produto e em seguida os produtos pertencentes a eles.Ficando :
Grupo 1:
Tipo: A
->Produto 1;
->Produto 2;
Tipo: B
->Produto 3;
Grupo 2:
Tipo: A
->Produto 4;
Tipo : B
-> Produto 5;
Mas , não sei como relacionar os models para que eu consiga gerar esse resultado.
Alguém sabe se tem essa possibilidade ? Teria que criar mais tabelas ?
Desde já , grato.
Discussão (0)
Carregando comentários...