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!
Page 1 of 1
Dataprovider e model
#2
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:
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.
E se la mia risposta ti è piaciuta... non è che ti andrebbe di cliccare sul + verde in basso a destra =)
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 =)
#3
Posted 11 October 2011 - 04:38 AM
sei un grande!
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!
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!
Share this topic:
Page 1 of 1

Help












