Yii Framework Forum: Dataprovider e model - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Dataprovider e model Rate Topic: -----

#1 User is offline   Gianluca 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 15
  • Joined: 07-October 11

Posted 11 October 2011 - 03:59 AM

Buongiorno ragazzi,
ho creato con gii 2 model e 2 crud, chiamati test1 e test2.
Se volessi che il dataprovider di test1 si riferisse a quello di test2, come dovrei fare?


$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'test-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
......
......

$model si riferisce a quello di test1.....io voglio riferirmi a test2!
Grazie!
0

#2 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 11 October 2011 - 04:23 AM

Per prima cosa devi andare nel model di test1 e definire la relazione. Facciamo un esempio pratico.

Sopponiamo di avere la tabella utenti e la tabella ruoli più o meno così formate:
=utenti=
id
username
nome
cognome
idruolo

=ruoli=
id
nomeruolo


A questo punto, dobbiamo dire al model Utenti che ha una relazione con il model Ruoli:

<?php

class Tags extends CActiveRecord {

    ...
    
    public function relations() {
        return array(
            'ruolo' => array(self::BELONGS_TO, 'Ruoli', 'idruolo')
        );
    }

    ...
    
}


Adesso, quando richiamiamo il CGridView, dobbiamo specificare il campo. Nota come viene indicata la relazione che è stata aggiunta nel model. Nota anche che quella relazione, ti permette di indicare il nome del campo nell'altra tabella.

<?php
    $this->widget('zii.widgets.grid.CGridView', array(
        'id' => 'utenti-grid',
        'dataProvider' => $model->search(),
        'filter' => $model,
        'columns' => array(
            'username',
            'nome',
            'cognome',
            'ruolo.nomeruolo',
            array(
                'class' => 'CButtonColumn',
            ),
        ),
    ));
?>


E se la mia risposta ti è piaciuta... non è che ti andrebbe di cliccare sul + verde in basso a destra =)???
1

#3 User is offline   Gianluca 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 15
  • Joined: 07-October 11

Posted 11 October 2011 - 04:38 AM

sei un grande!:D

Io go risolto inserendo in view/admin $model2=new Test('search'); ottenendo

<?php

$model2=new Test('search');
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'test-grid',
'dataProvider'=>$model2->search(),
'filter'=>$model2,
'columns'=>array(
'codice_fiscale_paziente',
array(
'class'=>'CButtonColumn',
),
),
)); ?>

e funziona!:D
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users