Yii Framework Forum: Transpor Comando Sql Para Cactivedataprovider - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Transpor Comando Sql Para Cactivedataprovider CActiveDataProvider Rate Topic: ****- 1 Votes

#1 User is offline   Alessandro Correia 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 5
  • Joined: 18-April 12

Posted 16 January 2013 - 01:40 AM

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,
),
0

#2 User is online   Newerton 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 821
  • Joined: 27-April 10
  • Location:Campo Grande/MS - Cambé/PR, Brasil

Posted 16 January 2013 - 09:40 AM

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.
Newerton Vargas de Araújo
0

#3 User is offline   Alessandro Correia 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 5
  • Joined: 18-April 12

Posted 16 January 2013 - 11:15 AM

View PostNewerton, on 16 January 2013 - 09:40 AM, said:

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!!!
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users