E ai galera, sou novo no Yii e estou com um problema que vcs talvez possam me ajudar.
seguinte, tenho duas views: ‘vw_mat_empregado’ e ‘gop_mee_smmateqe’, onde a primeira tem os dados dos funcionarios e a segunda os materiais fornecidos a funcionarios.
As tabelas devem se relacionar da seguinte maneira:
segui o tutorial do yii e realizei o relacionamento entre as classes, como segue no trecho abaixo
VmMatEmpregado.php
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'materiais'=>array(self::HAS_MANY, 'GopMeeSmmateqe', 'matricula_funcionario'),
);
}
public function primaryKey()
{
return 'nr_rg';
}
porém quando executo a consulta na view, não recebo todos os dados que existem na tabela, normalmente apenas um deles (e estou usando findAll):
Tentei tirar o together() … a query permanece a mesma, e o resultado tbm:
segue a query:
SELECT "t"."nr_rg" AS "t0_c0", "t"."nm_empregado" AS "t0_c1",
"t"."nm_guerra" AS "t0_c2", "t"."situacao_funcionario" AS "t0_c3",
"t"."cargo" AS "t0_c4", "t"."descricao_cargo" AS "t0_c5",
"t"."descricao_abreviada_cargo" AS "t0_c6", "t"."nr_rs" AS "t0_c7",
"t"."descricao_centro_custo" AS "t0_c8", "t"."sigla_centro_custo" AS
"t0_c9", "materiais"."cdmatmcd" AS "t1_c0", "materiais"."nmmcd" AS
"t1_c1", "materiais"."matricula_funcionario" AS "t1_c2",
"materiais"."nome" AS "t1_c3", "materiais"."cdcautqem" AS "t1_c4",
"materiais"."qtoriqem" AS "t1_c5", "materiais"."qtqeqem" AS "t1_c6",
"materiais"."nralmqem" AS "t1_c7", "materiais"."nrdocqem" AS "t1_c8",
"materiais"."dtdocqem" AS "t1_c9" FROM "gop_mee"."vw_mat_empregado" "t"
LEFT OUTER JOIN "gop_mee"."gop_mee_smmateqe" "materiais" ON
("materiais"."matricula_funcionario"="t"."nr_rg") WHERE (nr_rg=:nr_rg)
na teoria o que estou fazendo estaria certo? tenho uma tabela de funcionarios e os materiais destinados a cada um desses funcionarios … dessa forma tenho um relacionamento 1 para muitos, ok?
então, ao consultar um funcionario através desse relacionamento eu deveria ter acesso a um array dos materiais através de
$teste->materiais
seria isso mesmo ou estou viajando? rs …
PS: editei esse post, pois notei que acontece a mesma coisa em uma outra busca que fiz … olha só fiz uma busca por setor, trouxe todos os usuarios … até ai blz. Porém para cada usuario aparece no maximo 1 material, sendo que alguns possuem mais que isso …
Cara … descobri o que estava acontecendo … acabei colocando como chave primaria um registro que estava se repetindo e por algum motivo o Yii não traz essa informação com chave repetida …
solução criei um outro campo auto increment e defini como chave primaria … agora esta belezinha