Apanhando muito do Yii, estou jogando a toalha e pedindo um help aqui.
Antes já li, reli e reli o guia definitivo, o tutorial do blog, o site do Ullman o "manuel", wiki etc...
Os exemplos encontrados eu consegui entender/fazer, mas não consigo por em prática para meu caso, que também não é nada tão complexo, acredito...
Quem puder ajudar, segue o relato abaixo, esperando que não fique confuso (muito) :)
a) o problema:
Listar todas as empresas relacionadas a determinada categoria.
b) Modelei a classe Empresa e Categoria, com relacionamento NxN - uma empresa possui muitas categorias, uma categoria possui muitas empresas.
Ex.:
- Empresa Coca-Cola -> Categoria refrigerantes, Categoria gelado, Categoria doce...
- Categoria gelado -> Empresa Coca-Cola, Empresa Kibon...
c) Criei as tabelas MySQL InnoDB
- Empresa (PK id), nomeEmpresa (...)
- Categoria (PK id), nomeCategoria (...)
- EmpCat (FK eId, cId)
d) No model:
- Empresas->relations():
return array(
'categorias' => array(self::MANY_MANY, 'Categorias', 'EmpCategorias(eId, rId)'),
);
- Categorias->relations():
return array(
'empresas' => array(self::MANY_MANY, 'Empresas', 'EmpCategorias(rId, eId)'),
);
e) no Controller eu recebo uma id de uma categoria via url ($id) e preciso exibir todas as empresas dessa categoria.
Pensei algo assim:
$tmps=Empresas::model()->with('categorias')->findAll();
$names=array();
foreach($tmps as $tmp)
$names[]=$tmp->empresaNome;
return $names;
Sendo que no caso $names vai conter todas as empresas e aí que está minha dificuldade, como filtrar essa consulta para exibir apenas empresas com Categoria->id == $id ???
Abs