hola, sin conocer mucho que es lo quieres hacer, pero entendiendo que en el fondo lo que quieres hacer es personalizar un poco mas tu busqueda insertando dos parametros que no quieres que aparezcan en el resultado visible al usuario, pero que si aparezcan al momento de hacer el advanced search:
en tu modelo:
definir dos atributos nuevos, que no necesariamente tienen que pertenecer a tu modelo de datos, estos dos atributos seran cargados con valores en tu Vista, mediante un filtro (el textbox que aparece cuando en un CGridView indicas valores a "filter" ) :
public $curp;
public $no;
agrega una regla en tu modelo:
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
// BLA BLA BLA
// The following rule is used by search().
// Please remove those attributes that should not be searched.
array('idbranch, branchname, idbranchparent, broker', 'safe', 'on'=>'search'),
// BLA BLA BLA
[b] // "miBusquedaAvanzada" sera tu escenario personalizado [/b]
[b] array('curp, no', 'safe', 'on'=>'[color="#ff0000"]miBusquedaAvanzada[/color]'),[/b]
// BLA BLA BLA
array('newbroker','validate_newbroker','on'=>'update'),
);
}
agrega un metodo de busqueda (como te dice mauricio arriba) :
public function [b][color="#9932cc"]doMyAdvancedSearch()[/color][/b]
{
$criteria=new CDbCriteria;
// esto creara una busqueda para tu modelo, usando
// algo asi como "select * from MODELO where curp='x' and no='zz'; "
$criteria->compare('CURPO',$this->tmp_CURP,true);
$criteria->compare('NO',$this->tmp_NO,true);
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}
EN TU CONTROLADORA:
public function actionLaunchMyAdvancedSearch()
{
$model=new Plan('[b][color="#ff0000"]miBusquedaAvanzada[/color][/b]'); // aqui va el string que te cuento arriba, indicando el escenario deseado
$model->unsetAttributes(); // clear any default values
if(isset($_GET['TUMODELO']))
$model->attributes=$_GET['TUMODELO'];
$this->render('[color="#0000ff"]myadvancedsearchview[/color]',array(
'data'=>$r->doMyAdvancedSearch(),
));
}
EN TU VISTA: [color="#0000FF"]myadvancedsearchview.php[/color]
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'tumodelo-grid',
'dataProvider'=>$model->[b][color="#9932cc"]doMyAdvancedSearch()[/color][/b],
'filter'=>$model,
'columns'=>array(
'direccion',
// SIMPLEMENTE NO PRESENTAS LOS CAMPOS CURP y NO, SOLO PRESENTAS LO QUE GUSTES, aunque [b][color="#9932cc"]doMyAdvancedSearch() haya hecho la busqueda por CURP and NO[/color][/b]
array('name'=>'idcliente','filter'=>Cliente::asOptions('names',false),'value'=>'$data->cliente->names'),
array('name'=>'fecharegistro','type'=>'fechacorta'),
array('name'=>'fechaexpira','type'=>'fechacorta'),
'proveedor',
array(
'class'=>'CButtonColumn',
),
),
)); ?>