Retornando usuario daquela unidade

Pessoa Tenho a seguinte situação…

Tabelas:

Controle | Paciente | Setor | Unidade | Usuario

Onde:

Controle.id_paciente

Paciente.id_setor

Setor.id_unidade

Usuario.id_unidade

… Tenho que exibir os PACIENTES da tabela CONTROLE, só que tenho USUARIO que é de varias UNIDADES,

O que eles estão funcionando blz, só que tenho que exibir pacientes que estão com mesma unidade do usuario.

Obs: os usuarios só podem ver pacientes da mesma unidade

só q tem usuarios Diretor que pode ver todas as unidades na tabela CONTROLE

Entenderam ????

@Luan teria como colocar o Modelo Relacional das suas tabelas para ficar melhor e mais fácil de vizualizar?

Mas acredito que são somente joins e no caso do usuário da unidade ela seja passada por parâmetro dentro do join.

6717

Sem título-2.jpg

@Luan, pelo que entendi da sua ER, sua consulta terá que relacionar o id_usuario da tb usuário com id_usuario da tabela paciente, para pegar o id_setor, dai vc relaciona com o id_setor da tabela setor e pega o id_unidade, para finalmente chegar na tabela do usuário.

Não sei como o Yii faz esse tratamento com os relations que ele cria, mas acredito que consiga fazer algo como $model->Nome_do_relaciomento->nome_do_segundo_relaciomaneto->nome_do_terceiro_relacionamento (desculpe escrever assim meio vago é q não tenho nenhuma app Yii aqui para sugerir os nomes + próximos)

Caso não consiga dessa forma o Yii permite que crie suas queries personalizadas daí vc monta seus joins como descrevi no primeiro paragrafo. Acho que esse é o caminho.

Desse modo que vc falou no $Model Funciona,

estou tentando trazer nesta consulta, só q tem usuario q o id_unidade vai está null que ele pode ver todos os pacientes.




$und = 2;


$criteria4 = new CActiveDataProvider('Controle' ,array(

	'criteria'	=> array('condition' => 'id_situacao = 1 AND dt_final >= DATE(NOW()) AND NOT EXISTS (SELECT NULL FROM controle_paciente cp WHERE cp.id_controle = t.id_controle AND DATE(cp.dt_sistema) = DATE(NOW()))',

		'with'		=>array('idPaciente'=>array('joinType'=>'LEFT JOIN')),

		'order'		=> 'ds_nome ASC',

		'params'	=> array(':unidade' => $und)

	),

	'pagination'=>array(

		'pageSize'=>'10'

	)


));




será que teria q colocar o relacionamento do setor <-> unidade no left join ???

Brother, acredito que tenha que seguir a linha do Join que te mostrei ou tentar com subquery.