Como converter uma consulta SQL personalizada para dataprovider(tbgridview) yii?

78 views
Skip to first unread message

Janito Vieira

unread,
Jan 7, 2015, 6:09:08 AM1/7/15
to yii-framew...@googlegroups.com

Olá a todos!


Pretendo converter uma consulta personalizada de duas tabelas para dataprovider(tbgridview),
mas não consigo, sendo assim gostaria da vossa ajuda!

$queryresult = Consultas::getClientes();   //Minha consulta SQL

$dataProvider=new CSqlDataProvider($queryresult);   //Converter SQL para dataProvider

$this->widget('booster.widgets.TbGridView', array(      //Aqui é onde pretendo ver o resultado SQL
'id'=>'cliente-grid',
'type' => 'striped',
'dataProvider'=> $dataProvider,
'columns'=>array(

'ID_Cliente',
'Nome',
'Email',
'Nacionalidade',
array(
'htmlOptions' => array('nowrap'=>'nowrap'),
'class'=>'booster.widgets.TbButtonColumn',
),
),
)); ?>

Agradeço desde já pela ajuda!

Railton Nepomuceno

unread,
Jan 8, 2015, 11:20:12 AM1/8/15
to yii-framew...@googlegroups.com
Dá uma olhada como que usa o Csqldataprovider.

Leonardo Antônio

unread,
Jan 8, 2015, 8:27:06 PM1/8/15
to yii-framew...@googlegroups.com
Boa noite Railton,

Vou ti mandar um exemplo que eu fiz aqui:

Function do Model Indenizacao:

public function search() {
        // @todo Please modify the following code to remove attributes that should not be searched.

        $criteria = new CDbCriteria;

        $criteria->compare('id', $this->id);
        $criteria->compare('vigencia', $this->vigencia, true);
        $criteria->compare('valor', $this->valor);

        return new CActiveDataProvider($this, array(
            'criteria' => $criteria,
        ));
    }

View:

$this->widget('booster.widgets.TbGridView', array(
    'id' => 'indenizacao-grid',
    'dataProvider' => $model->search(),
    'filter' => $model,
    'columns' => array(
        'id',
        'vigencia',
        'valor',
        array(
            'class' => 'booster.widgets.TbButtonColumn',
        ),
    ),
));

No dataProvider da TbGridView eu já chamo a função search que retorna um DataProvider. Acho que ti ajuda. Boa sorte.

--
YFB - Yii Framework Brasil
04/2011: Anexos de até 250kb foram autorizados pelos membros da lista. Use com moderação.
---
Você recebeu essa mensagem porque está inscrito no grupo "YFB - Yii Framework Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para yii-framework-br...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/yii-framework-brasil/2518b48e-a888-4de0-95a7-48c6ca3ac3a8%40googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Janito Vieira

unread,
Jan 9, 2015, 9:35:30 AM1/9/15
to yii-framew...@googlegroups.com
Vou dar uma vista de olhos. Obrigado a todos.
Reply all
Reply to author
Forward
0 new messages