Tenho uma base de dados conforme abaixo!
4176
Gostaria de lista os produtos de uma determinada categoria.
Qual seria a melhor forma para isso?
Tenho uma base de dados conforme abaixo!
4176
Gostaria de lista os produtos de uma determinada categoria.
Qual seria a melhor forma para isso?
Adriano,
Se no seu banco de dados, conter as FK criada, o Gii gera automático as relação.
Pegando por padrão que é gerado do Gii.
A relação do Model Categoria seria mais ou menos assim:
'produto_categorias'=>array(self::HAS_MANY,'Categoria',array('catregoria_id_cat' => 'id_cat')),
'produtos'=>array(self::HAS_MANY,'Produto',array('produto_id_prod'=>'id_produto'),'through'=>'produto_categorias'),
Se não for parecido com a relação acima, posta seu model Categoria.
Você irá chamar mais ou menos assim:
$model = Categoria::model()->findByPk(1);
foreach($model->produtos as $produto){
echo $produto->nome.'<br>';
}
Newerton, acho que não consegui formula bem a minha pergunta.
Eu preciso listar os produtos de uma categoria e não listar a categoria do meu produto.
Exemplo:
4187
Listando produto da categoria Alimento:
Açúcar
Feijão
Macarão
Qual seria a melhor forma pra isso?
muito obrigado pela força…
Adriano,
Você deve ter me interpretado errado. Eu respondi exatamente sua dúvida!
Vou mostrar novamente abaixo o que postei, mais com comentário:
$model = Categoria::model()->findByPk(1); //Aqui está selecionado a categoria "Alimentos"
//Neste foreach vai listar todos os Produtos da categoria "Alimentos",
// como pode ver to chamando uma relação ($model->produtos).
foreach($model->produtos as $produto){
echo $produto->nome.'<br>';
}
Para listar todos os Produtos de 1 Categoria, você precisa obviamente chamar 1 categoria ou toda as Categoria primeiro.
Para listar todas as categorias:
$categorias = Categoria::model()->findAll();
foreach($categorias as $categoria){
echo "<h1>{$categoria->nome}</h1>";
foreach($categoria->produtos as $produto){
echo $produto->nome.'<br>';
}
}
Posta a função relations() do seu model Categoria.