Quantcast
Channel: Yii Framework Forum
Viewing all articles
Browse latest Browse all 18717

Problema No Cgridview

$
0
0
Pessoal, boa tarde!

Tenho a seguinte situação : tenho três filtros no cgrid view, e ao fazer um filtro em um deles, o valor das colunas embaixo do outro desaparece.

Ex:
Ao selecionar um usuário, as colunas abaixo do filtro de outro campo aparecem vazias. Aparentemente a busca funciona porém o campo não é exibido. Tentei de diversas maneiras, inclusive não consegui exibir a query da busca usando o Yii::trace() para entender o que está ocorrendo.

Mudei os filtros para usando activeDropDownList, conforme esse tópico filtering-related-tables
Segue o código.

admin.php
<?php 

$tabelas = array('sch_scspm.tb_usuario'=>'Usuário', 'sch_scspm.tb_tp_num_sequencial'=>'Tipo de Receita', 'sch_scspm.tb_num_sequencial'=>'Faixa', 'sch_scspm.tb_especialidade_medica'=>'Especialidade', 'sch_scspm.tb_medico'=>'Prescritor',  'sch_scspm.tb_clinica'=>'Estabelecimento',  'sch_scspm.tb_medico_clinica'=>'PrescClinc',  'sch_scspm.tb_grafica'=>'Gráfica',  'sch_scspm.tb_requisicao'=>'Requisição');
$acoes = array('CADASTRAR'=>'CADASTRAR', 'ALTERAR'=>'ALTERAR', 'DELETAR'=>'DELETAR',  'CANCELADA TOTAL'=>'CANCELADA TOTAL', 'CANCELADA PARCIAL'=>'CANCELADA PARCIAL');

$this->widget('zii.widgets.grid.CGridView', array(
	'id'=>'log-grid',
	'dataProvider'=>$model->search(),
	'filter'=>$model,
    	'columns'=>array(
           
              array(
                    'name'=>'nome_tabela',
                    'value'=>$model->nome_tabela,
                    'filter'=> CHtml::activeDropDownList($model, 'nome_tabela', $tabelas, array('empty'=>'Escolha')),
                 ),
	
	    array(
                    
                    'name'=>'acao_log',
                    'value'=>$model->acao_log,
                    'filter' => CHtml::activeDropDownList($model, 'acao_log', $acoes, array('empty'=>'Escolha')),
                    
                 ),
		'dt_log',
		'hr_log',
        
            array(
                        'name'=>'id_usuario',
                        'value'=>'Usuario::Model()->FindByPk($data->id_usuario)->nome',
                        'filter' =>CHtml::activeDropDownList($model, 'id_usuario', CHtml::listData(Usuario::model()->findAll(array('order'=>'nome')), 'id_usuario', 'nome'), array('empty'=>'Escolha')),
                       
                ),

                'ip_usuario',
		array(
			'class'=>'CButtonColumn',
                        'template'=>'{view}',
                    
                    
		),
	),
)); ?>



Log.php
   public function relations() {
        // NOTE: you may need to adjust the relation name and the related
        // class name for the relations automatically generated below.
        return array(
        'usuarios' => array(self::BELONGS_TO, 'Usuario', 'id_usuario'),
        );
    }
...

 public function search() {
       
     
        $criteria = new CDbCriteria;
        $criteria->compare('id_log', $this->id_log);
        $criteria->compare('nome_tabela', $this->nome_tabela);
        $criteria->compare('id_tabela', $this->id_tabela);
        $criteria->compare('acao_log', $this->acao_log);
        //Yii::trace($this->acao_log );
        
        $criteria->compare('informacao', $this->informacao);   
        
        
        if ($this->dt_log != NULL) {

            $this->dt_log = Yii::app()->dateFormatter->format('yyyy-MM-dd', CDateTimeParser::parse($this->dt_log, 'dd/MM/yyyy'));
        }
        $criteria->compare('dt_log', $this->dt_log);
        $criteria->compare('hr_log', $this->hr_log);
        $criteria->compare('id_usuario', $this->id_usuario);
        $criteria->order = 'id_log DESC';
      
        
        return new CActiveDataProvider($this, array(
            'criteria' => $criteria,
        ));
        ;
    }




Obs: se eu retirar o
 array('empty'=>'Escolha')
Funciona, entretanto os combos ficam com valores fixados o que não é ideal para se eu quiser buscar apenas os logs dos usuários por exemplo.

Obs2: Quando utilizo todo os filtros dos combos os valores correspondentes aparecem nas colunas do grid corretamente.

Alguém teria alguma ideia do que pode estar ocorrendo?

Obrigado, desde já!

Viewing all articles
Browse latest Browse all 18717


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>