Transpor Comando Sql Para Cactivedataprovider

Saudações a todos,

Consigo obter o resultado esperado em banco através do comando.

SELECT t.id , t.usuario , t.email , t.data_ultima_entrada , t.situacao , t.ip_ultima_entrada , t2.situacao , t.sexo

FROM usuario t

LEFT JOIN evento_usuario t2 ON t2.usuario_id = t.id

WHERE t2.evento_id =1

LIMIT 5

porém ao transpassar isso para CActiveDataProvider o valor da coluna situacao da tabela de relacionamento many many não é obtido.

Pode me indicar como posso fazer para trazer esta informação. Se possível com uma breve explicação?

Segue o código:

$UsuariosDataProvider = new CActiveDataProvider(‘Usuario’, array(

‘criteria’ => array(

‘condition’ => ‘t2.evento_id =’ . $id,

‘join’ => 'LEFT OUTER JOIN evento_usuario t2 ON t2.usuario_id = t.id '),

‘select’=>"t.id , t.usuario , t.email , t.data_ultima_entrada , t.situacao , t.ip_ultima_entrada , t2.situacao , t.sexo",

‘pagination’ => array(

‘pageSize’ => 5,

),

Alessandro,

No seu model Usuario, não existe nenhuma relação na função relations() ?

Podemos criar uma relação no seu model Usuario para a tabela evento_usuario, assim você pode usar essa relação mais fácil para suas consultas.

Então Newerton,

Vou postar as relações e dizer minha necessidade.

Usuario

public function relations() {

return array(

        'eventos' => array(self::MANY_MANY, 'Evento', 'evento_usuario(usuario_id, evento_id)'),


    );

}

Evento

public function relations() {

    return array(


        'usuarios' => array(self::MANY_MANY, 'Usuario', 'evento_usuario(evento_id, usuario_id)'),


    );

}

EventoUsuario

public function relations() {

  }

Necessidade 1 - Mostrar todos os eventos e situacao dos participantes tipo

Evento 1

Participantes na situação 1 - 10

Participacao na situação 2 - 15

Participantes na situação 3 - 10

Evento 2

Participantes na situação 1 - 3

Participacao na situação 2 - 5

Participantes na situação 3 - 9

Necessidade 2 - Mostrar detalhes da participação de Eventos

Evento 1

descrição evento 1

Participantes

João joao@provedor.com.br Pendente [Enviar Confirmação]

Maria Maria@provedor.com.br Pendente [Enviar Confirmação]

Juliana juliana@provedor.com.br confirmado

João joao@provedor.com.br confirmado [Enviar Confirmação]

Tabelas

id

Usuario

nome

email

Evento

id

Nome

descrição

Local

EventoUsuario

usuario_id

evento_id

situacao_evento (confirmado, pendente, cancelado)

obs: A tabela eventousuario não tem chave primária id a chave primária é composta pelas colunas usuario_id e evento_id e são únicas.

Obrigado por sua ajuda!!!