Ayuda en búsqueda avanzada sin mostrar grid

Hola que tal espero que se encuentren bien, el motivo de mi mensaje es para pedirles ayuda en la búsqueda avanzada deseo indicar dos campos en los cuales sean la CURP y un NO, pero… no deseo que se visualicen los datos en el grid, que el grid se muestre vacío, pero cuando en la búsqueda avanzada indique el CURP de una persona y el No que es un folio, cuando el resultado sea correcto a los datos a buscar…, en el grid me muestre unicamente ese registro… en dado caso que no se busque nada no me muestre nada en el grid… la verdad necesito ayuda en eso porque no tengo la minima idea de como hacerlo que funcione de esta manera en yii…, Recapitulando, al entrar al módulo que el grid se muestre vacío aunque la tabla tenga datos, y que en la búsqueda avanzada cuando indiquen la búsqueda y sea exitosa me muestre el resultado obtenido en el grid pero solo de ese registro…

Tendrías que modificar el método search() de tu modelo, o agregar uno nuevo, donde, si los atributos de filtro no están definidos, devuelva un CActiveDataProvider vacío. Luego, cuando recién se asignen valores a los atributos (al ingresar valores en los filtros del grid), filtre y devuelva valores obtenidos desde la base de datos.

Sale muchas gracias precisamente había pensado hacerlo de esa manera… se te agradece tu comentario cuidate :D

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',

		),

	),

)); ?>

OOOhhh ya veo muchas gracias bluyell tenía duda de como se realizaba eso, para aplicarlo… se te agradece tu comentario…