Boa tarde a todos,
Estou com a seguinte dificuldade:
Tenho 3 tabelas:
curriculo: com os dados do candidato
adicionar_vaga: que é a vaga adicionada pela empresa.
e candidatos_vaga: que contem as colunas id, id_vaga, id_candidato onde lista os candidatos inscritos a vaga.
o que eu preciso é listar todos os candidatos inscritos então fiz:
model Curriculo
public function relations()
{
return array(
'candidatos'=>array(self::MANY_MANY, 'AdicionarVaga','candidatos_vaga(id_candidato,id_vaga)')
);
}
Controle da vaga
public function actionView($id)
{
// $inscritos = CandidatosVaga::model()->findall('id_vaga=:id_vaga', array(':id_vaga'=>$id));
// $inscritos=Curriculo::model()->with('candidatos')->findAll('candidatos_candidatos.id_vaga = :id_vaga',array(':id_vaga'=>$id));
$criteria=new CDbCriteria;
$criteria->with='candidatos';
$criteria->condition='candidatos_candidatos.id_vaga = :id_vaga';
$criteria->params = array(':id_vaga'=>$id);
$dataProvider=new CActiveDataProvider('Curriculo',array('criteria'=>$criteria));
$dataProvider->pagination->pageSize=2;
$this->render('view',array(
'model'=>$this->loadModel($id),
'dataProvider'=>$dataProvider
));
}
porém me retorna o seguinte erro:
CDbCommand falhou ao executar o comando SQL: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'candidatos_candidatos.id_vaga' in 'where clause'. The SQL statement executed was: SELECT `t`.`id` AS `t0_c0`, `t`.`id_cadastro` AS `t0_c1`, `t`.`dp_perfil` AS `t0_c2`, `t`.`dp_esta_empregado` AS `t0_c3`, `t`.`faixa_salarial_id` AS `t0_c4`, `t`.`periodo_desejado_id` AS `t0_c5`, `t`.`contrato_desejado_id` AS `t0_c6`, `t`.`cp_ida_profissional1` AS `t0_c7`, `t`.`cp_ida_profissional2` AS `t0_c8`, `t`.`cp_ida_profissional3` AS `t0_c9`, `t`.`cp_id_departamento1` AS `t0_c10`, `t`.`cp_id_departamento2` AS `t0_c11`, `t`.`cp_id_departamento3` AS `t0_c12`, `t`.`hierarquias` AS `t0_c13`, `t`.`habilitacao_dirigir` AS `t0_c14`, `t`.`veiculo_proprio` AS `t0_c15`, `t`.`disponibilidade_viajar` AS `t0_c16`, `t`.`disponibilidade_trabalhar_estados` AS `t0_c17`, `t`.`informatica_programacao_banco_de_dados` AS `t0_c18`, `t`.`informatica_softwares_desenvolvimento` AS `t0_c19`, `t`.`informatica_conhcecimentos_aplicativos_sistemas` AS `t0_c20`, `t`.`cp_especifico` AS `t0_c21`, `t`.`data_criacao` AS `t0_c22`, `t`.`data_atualizacao` AS `t0_c23` FROM `curriculo` `t` WHERE (candidatos_candidatos.id_vaga = :id_vaga) LIMIT 2
tentei o mesmo procedimento no controller desta forma:
$inscritos=Curriculo::model()->with('candidatos')->findAll('candidatos_candidatos.id_vaga = :id_vaga',array(':id_vaga'=>$id));
e funcionou!
Alguém pode me ajudar nesta.