Findall Array Condition Not In

Hola, estoy intentanco meter una condicion dentro de un FindAll y no se como hacerlo mis tablas son estas




 __________________            _______________            ____________

|--tbl_estructura--|          |--tbl_vinculo--|          |--tbl_jefe--|

|id                |---------<|id             |>---------|id          |

|denominacion      |          |idestructura   |          |nombre      |

|__________________|          |idJefe         |          |____________|

                              |_______________|



Tengo un DropdownList que muestra, la denominacion de tbl_estructura y toma el ID para el form.




<div class="row">

	<?php echo $form->labelEx($model,'idestructura'); ?>

	<?php echo $form->dropDownList($model,'idestructura',


	//CHtml::listData(TblEstructura::model()->findAllBySql('SELECT id, denominacion FROM tbl_estructura order by id ASC'),

	CHtml::listData(TblEstructura::model()->findAll(array("condition"=>"XXXXX = XXXXXXXXX","order"=>"id")),'id','denominacion'),

	array(

			'ajax' => array(

				'type' => 'POST',

				 'beforeSend' => 'function(){

                    	if ($("#TblMaximaautoridadEstructura_idestructura").val() == "") {

                    	$("#TblMaximaautoridadEstructura_variableCodOnapre").val("");

                    	$("#TblMaximaautoridadEstructura_variableTelefono").val("");


                    	}else {

                    	$("#TblMaximaautoridadEstructura_variableCodOnapre").val("Codigo");

                    	$("#TblMaximaautoridadEstructura_variableTelefono").val("Telefono");

                    	}

            	}',

				),'prompt' => 'Seleccione un Organismo o Ente...'

		)

	); ?>

	<?php echo $form->error($model,'idestructura'); ?>

</div>



Necesito poner una condicion NOT IN dentro de el arreglo. el query seria algo como este:

SELECT denominacion

FROM tbl_estructura

WHERE tbl_estructura.id NOT IN (SELECT idestructura FROM tbl_vinculo)

como pongo esto como condicion dentro del "condition" del FindAll

¿Has probado ponerlo dentro del condition? Teóricamente ahí es donde empieza el where, así que debería funcionar. Y si quieres puedes usar FindAllBySql.

Buenas, podrías hacerlo por ejemplo así:




......->findAll(

               "id = :idEstructura",

               array(

                    ':idEstructura' => $model->nombreCampo

                    )

               );



Ten encuenta que deberás cambiar el condition y los parámetros de filtrado por los que desees.

Un saludo.