INSTALASI Yii:
posted by : Muhammad Nazih
tgl ; 3 juli 2013
 
 
 
 
 
 
 
 
 
posted by : Muhammad Nazih
tgl ; 3 juli 2013
MEMBUAT
TUTORIAL YII FRAMEWORK
- Download
- Letakkan di document root => /var/www
- Ektrak dan rename => yii
- Test di browser http://localhost/yii/demos/
- Lihat juga requirements di http://localhost/yii/requirements/
- masuk ke direc /var/www/framework
- install dengan cara : ./yiic webapp /var/www/appyiiku
- Ubah Mode di MVC : chmod 777 var/www/appyiimu -R
- masuk ke directory procted config buka main.php dan buka komentar
  Untuk
yii controller
- Menganti Themes
//
 uncomment the following to enable the Gii tool 
  'gii'=>array(
   'class'=>'system.gii.GiiModule',
   'password'=>'1234',
 // dengan password anda
   //
 If removed, Gii defaults to localhost only. Edit carefully to taste.
   'ipFilters'=>array('127.0.0.1','::1'),
  ),
 ),
//
 uncomment the following to enable URLs in path-format
Untuk
 url menjadi lebih singkat / lebih enak di lihat  
  'urlManager'=>array(
   'urlFormat'=>'path',
   'rules'=>array(
   '<controller:\w+>/<id:\d+>'=>'<controller>/view',
   '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
   '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
   ),
  ),
//
 uncomment the following to use a MySQL database
Untuk
 Menghubungkan ke database
  'db'=>array(
   'connectionString'
 => 'mysql:host=localhost;dbname=dbpegawai',
   'emulatePrepare'
 => true,
   'username'
 => 'root',
   'password'
 => 'rahmatia',
   'charset'
 => 'utf8',
  ),
- Downloads template yang anda sukai terlebih dahulu
- Tambahkan hasil Downloads ke dalam Directory themes
- tambahkan file yang ke dalam file yang di bawah procted config main.php tambah kan seperti yang berwarna merah
return
 array(
'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
 'name'=>'Aplikasi
 Absesi Kelurahan ',
 'theme'=>'mortalkombat',
- Mengganti Tampilan Awal
Ketika
 anda  buka  url  aplikasi  anda  terdapat  keterangan  jelas 
bagaimana  cara  mengganti 
tampilan
 web  anda.  Dengan  pengetahuan  HTML,  tentu  sangat  mudah 
mengganti  halaman 
ini.
 Buka  file   
C:\xampp\htdocs\aplikasiku\protected\views\site\index.php  editlah 
sesuai 
kreatifitas
Anda, misalnya 
<h1>Selamat
Datang di Aplikasi Bopas</h1> 
<p>Aplikasi
ini digunakan untuk melakukan pengelolaan terhadap 
administrasi
program diklat yang diselenggarakan 
oleh
Pusdiklat Keuangan Umum - Badan Pendidikan dan Pelatihan 
Keuangan
- Kementerian Keuangan</p> 
<p>Pendaftaran
pegawai untuk mengikuti diklat dapat diselenggarakan 
secara
online dengan sistem yang terintegrasi 
dan
dapat dilihat secara uptodate secara online</p> 
<p>Terima
kasih</p> 
Kemudian
 untuk  mengganti  footer  default  Yii,  saya  akan  buka  file  di 
direktori 
C:\xampp\htdocs\aplikasiku\protected\views\layouts\main.php
 kemudian  pada  bagian 
bawah
ada tampilan seperti berikut: 
<div
id="footer"> 
 Copyright
copy; <?php echo date('Y'); ?> by My 
Company.<br/>
 All
Rights Reserved.<br/> 
 <?php
echo Yii::powered(); ?> 
</div><!--
footer --> 
Lalu
saya ubah menjadi seperti ini: 
<div
id="footer"> 
 Copyright
copy; <?php echo date('Y'); ?> by Hargi.<br/> 
 All
Rights Reserved.<br/> 
 Powered
by PusdiklatKU 
</div><!--
footer --> 
- Membuat database sederhana
Sebelum
 membuat  database  ada  perlunya  untuk  menyiapkan  software 
databse  designer, 
penulis
menggunakan MySQL Workbench, skenario kita kali ini akan membuat
aplikasi bisnis 
Komunitas
eLearning IlmuKomputer.Com 
Copyright
© 2008‐2012 IlmuKomputer.Com 
2
yang
berhungan dengan training, buka browser lalu ketikkan
http://localhost/phpmyadmin, 
buat
database baru dengan nama  aplikasikudb,  buat 4 tabel dengan
ketentuan sebagai 
berikut:
1.
Table user dengan 4 field yaitu sebagai berikut: 
 a.
iduser, int(11) 
 b.
username, varchar(45) 
 c.
password, varchar(45) 
 d.
name varchar(45) 
2.
Table category dengan 2 field yaitu sebagai berikut: 
 a.
idcategory, int(11) 
 b.
category_name, varchar(45) 
3.
Table training dengan 5 field yaitu sebagai berikut: 
 a.
idtraining, int(11) 
 b.
name_training, varchar(45) 
 c.
hours, varchar(45) 
 d.
time_start, (time) 
 e.
time_end, (time) 
4.
Table participant dengan 3 field yaitu sebagai berikut: 
 a.
idparticipant, int(11) 
 b.
name_participant, varchar(45) 
 c.
nip, bigint(18) 
dengan
gambar EER sebagai berikut: 
Berikut
script mysql nya: 
CREATE
TABLE IF NOT EXISTS `category` ( 
  `idcategory`
int(11) NOT NULL AUTO_INCREMENT, 
 
`category_name` varchar(45) DEFAULT NULL, 
PRIMARY
KEY (`idcategory`) 
)
ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; 
INSERT
INTO `category` (`idcategory`, `category_name`) VALUES 
(1,
'Diklat Teknis Umum (DTU)'), 
(2,
'Diklat Fungsional (DF)'); 
CREATE
TABLE IF NOT EXISTS `participant` ( 
 
`idparticipant` int(11) NOT NULL AUTO_INCREMENT, 
 
`name_participant` varchar(45) DEFAULT NULL, 
 
`nip` bigint(18) DEFAULT NULL, 
 
`city` varchar(45) DEFAULT NULL, 
 
`trainingid` int(11) NOT NULL, 
PRIMARY
KEY (`idparticipant`), 
KEY
`fk_participant_training1` (`trainingid`) 
)
ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=17 ; 
INSERT
INTO `participant` (`idparticipant`, `name_participant`, `nip`, 
 
`city`, `trainingid`) VALUES 
(1,
'Pegawai1', 198607202007011004, 'Surabaya', 2), 
(2,
'Ninin Sapto Hargiyanto', 198607202007011001, 'Jakarta', 2); 
CREATE
TABLE IF NOT EXISTS `training` ( 
 
`name_training` varchar(45) DEFAULT NULL, 
 
`hours` varchar(45) DEFAULT NULL, 
 
`time_start` date DEFAULT NULL, 
 
`time_end` date DEFAULT NULL, 
 
`categoryid` int(11) NOT NULL, 
PRIMARY
KEY (`idtraining`), 
KEY
`fk_training_category` (`categoryid`) 
)
ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; 
INSERT
INTO `training` (`idtraining`, `name_training`, `hours`, 
 
`time_start`, `time_end`, `categoryid`) VALUES 
(1,
'Legal Drafting', '30', '2012-07-12', '2012-07-19', 1), 
(2,
'Pranata Komputer', '150', '2012-07-15', '2012-08-10', 2); 
CREATE
TABLE IF NOT EXISTS `user` ( 
 
`iduser` int(11) NOT NULL AUTO_INCREMENT, 
 
`username` varchar(45) DEFAULT NULL, 
 
`password` varchar(45) DEFAULT NULL, 
 
`name` varchar(45) DEFAULT NULL, 
PRIMARY
KEY (`iduser`) 
)
ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; 
INSERT
INTO `user` (`iduser`, `username`, `password`, `name`) VALUES 
(1,
'admin', '21232f297a57a5a743894a0e4a801fc3', 'Administrator'), 
(2,
'hargi', '69510e32280ccbb3eb99bb36fc24b312', 'Hargi'); 
ALTER
TABLE `participant` 
ADD
CONSTRAINT `participant_ibfk_1` FOREIGN KEY (`trainingid`) REFERENCES
 
`training` (`idtraining`) ON DELETE CASCADE ON UPDATE CASCADE; 
ALTER
TABLE `training` 
ADD
CONSTRAINT `fk_training_category` FOREIGN KEY (`categoryid`) 
REFERENCES
`category` (`idcategory`) ON DELETE NO ACTION ON UPDATE NO 
ACTION;
- Melakukan Generate Tabel dengan Gii
Fitur
Yii  framework yang  membuat cepat suatu pemrograman  adalah  adanya
bantuan dari 
extensions
 bernama  Gii,  singkatan  dari  Yii  Code  Generator  yang 
berfungsi  untuk 
menghasilkan
 kode  secara  otomoatis.  Implementasinya  adalah  membuat  model, 
class  dan 
controller
dengan klik‐klik saja.  
Ok,
 langsung  aja  kita  buka  folder 
C:\xampp\htdocs\aplikasiku\protected\config\main.php 
lalu
cari code berikut: 
'modules'=>array(
 //
uncomment the following to enable the Gii tool 
 /*
 'gii'=>array(
  'class'=>'system.gii.GiiModule',
  'password'=>'Enter
Your Password Here', 
  //
If removed, Gii defaults to localhost only. Edit 
carefully
to taste. 
  'ipFilters'=>array('127.0.0.1','::1'),
  ),
  */
 ),
Ubah
codenya menjadi seperti berikut: 
'modules'=>array(
  'gii'=>array(
   'class'=>'system.gii.GiiModule',
   'password'=>'passwordku',
  'ipFilters'=>array('127.0.0.1','::1'),
  ),
 ),
Kode
 diatas  berfungsi  untuk  mengaktifkan  Yii  Code  Generator  (Gii) 
dengan  mengisikan 
passwordnya
 dengan  nilai  passwordku,  kemudian  cari  lagi  kode  koneksi 
database  nya 
seperti
dibawah ini: 
  /* 
  'db'=>array(
   'connectionString'
=> 
'mysql:host=localhost;dbname=testdrive',
  'emulatePrepare'
=> true, 
  'username'
=> 'root', 
  'password'
=> '', 
  'charset'
=> 'utf8', 
 ),
 */
Lalu
ubah menjadi seperti berikut: 
 'db'=>array(
  'connectionString'
=> 
'mysql:host=localhost;dbname=aplikasikudb',
  'emulatePrepare'
=> true, 
  'username'
=> 'root', 
  'password'
=> '', 
  'charset'
=> 'utf8', 
 ),
Kode
diatas memberikan koneksi ke database kita yang telah kita buat
sebelumny. Buka lagi 
browser
 anda  lalu  ketikkan  alamat 
http://localhost/aplikasiku/index.php?r=gii
 masukkan 
passwordku
di kolom password lalau enter. Akan muncul 5 list, yang akan kita
lakukan disini 
adalah
Model Generator  dan Crud Generator  saja.  
Kode
diatas memberikan koneksi ke database kita yang telah kita buat
sebelumny. Buka lagi 
browser
 anda  lalu  ketikkan  alamat 
http://localhost/aplikasiku/index.php?r=gii  masukkan 
passwordku
di kolom password lalau enter. Akan muncul 5 list, yang akan kita
lakukan disini 
adalah
Model Generator  dan Crud Generator  saja.  
Pertama
Klik pada Model Generator, pastikan anda ingat nama 4 tabel di
database kita, 
isikan
Table Name dengan nama tabel kita,  isikan nama Model Class dengan
nama tabel 
kita
dengan huruf awal kapital klik Preview, Klik Generate. Ulangi untuk 3
tabel kita 
Kedua
Klik pada Crud Generator, isikan Model Class dengan nilai pada step
Pertama tadi, 
yaitu
nama tabel dengan huruf awal kapital. Klik preview lalu Generate.
Ulangi untuk 3 
Model
Class lainnya. 
Selamat,
kini kita telah mempunyai  
4
file Model di dalam folder models, berekstensi php 
4
file Controller di dalam folder controllers, berekstensi php 
4
folder View di dalam  folder views  
Semuanya
ada di dalam folder C:\xampp\htdocs\aplikasiku\protected. Kita akan
fokus pada 
folder
 di  dalam  protected  ya.  Jika  ada  kesalahan  pastikan  anda 
telah  benar  melakukan 
generate
Model Generator  dan Crud Generator   
Referensi:
- Pengelolaan Aplikasi Web‐based
  Hasil
 generate  Gii  pada  tahap  sebelumnya  telah  cukup  untuk 
melakukan  pengeloaan  data 
  dan
informasi lewat web yang terkoneksi dengan database kita. Kita telah
dapat menambah, 
  merubah
dan menghapus data.  
  Buka
browser ketikkan http://localhost/aplikasiku/index.php?r=training 
  Hasilnya
adalah anda dapat melihat daftar tabel berisi training yang telah
terhubung dengan 
  database
kita. 
a)
Menambah (Insert) 
  Untuk
 menambah  data  baru,  diperlukan  login.  Default  Yii  adalah 
menggunakan 
  username
: admin dan password : admin. Setelah berhasil login, Anda dapat
melakukan 
  penambahan
 data  ke  dalam  tabel  dengan  melihat  pada  jendela  Operations, 
lalu  klik 
  Create
yang terdapat pada sisi samping tabel listing data. 
b)
Mengurangi (Update) 
  Sama
seperti pada point a, klik pada Update 
c)
Menghapus (Delete) 
  Sama
seperti pada point a, klik pada Delete 
d)
Mengelola (Manage) 
  Sama
seperti pada point a, klik pada Manage. Akan muncul listing data yang
powerfull, 
  fasilitas
 search  berdasarkan  data,  ditambah  pula  3  fitur  Insert 
(Menambah),  Update 
  (Merubah),
dan Menghapus (Delete). 
- MODIFIKASI APLIKASI DASAR
 Modifikasi
Menu Kategori  
Pada
menu standar Yii, kita ingin menambahkan menu baru.  
Buka
C:\xampp\htdocs\aplikasiku\protected\views\layouts\main.php cari
halaman berikut: 
 <div
id="mainmenu"> 
  <?php
$this->widget('zii.widgets.CMenu',array( 
   'items'=>array(
    array('label'=>'Home',
'url'=>array('/site/index')),
    array('label'=>'About',
'url'=>array('/site/page',
'view'=>'about')), 
    array('label'=>'Contact',
'url'=>array('/site/contact')),
Ubah
menjadi seperti berikut: 
<div
id="mainmenu"> 
<?php
$this->widget('zii.widgets.CMenu',array( 
   'items'=>array(
    array('label'=>'Home',
'url'=>array('/site/index')),
    array('label'=>'Kelola
Diklat', 
'url'=>array('/category/index')),
Hasilnya
memberikan  link Kelola Diklat dengan tampilan (view) adalah
category/index.php. 
ke
dalam Menu. 
- Modifikasi Tampilan Kategori
Untuk
merubah tampilan nya buka file nya di dalam folder berikut: 
C:\xampp\htdocs\aplikasiku\protected\views\category
lalu edit index.php  
Ubah
<h1>Categories</h1> menjadi <h1>Pilih Kategori
Diklat</h1> 
Tampilan
listingnya ternyata diarahkan ke _view, buka lagi file  
C:\xampp\htdocs\aplikasiku\protected\views\category\_view.php
Ubah
 
<b><?php
echo CHtml::encode($data->getAttributeLabel('idcategory')); 
?>:</b>
 <?php
echo CHtml::link(CHtml::encode($data->idcategory), 
array('view',
'id'=>$data->idcategory)); ?> 
 <br
/> 
 <b><?php
echo CHtml::encode($data- 
>getAttributeLabel('category_name'));
?>:</b> 
 <?php
echo CHtml::encode($data->category_name); ?> 
 <br
/> 
Menjadi
cukup seperti ini 
<h2><?php
echo CHtml::link(CHtml::encode($data->category_name), 
array('view',
'id'=>$data->idcategory)); ?></h2> 
Ini
akan menjadikan tampilan ketika di klik menu kategori, akan muncul
listing data kategori 
saja.
- Modifikasi Isi Halaman
Ketika
diklik masing‐masing kategori kita akan dihadapkan pada tampilah
nama dari kategori 
tersebut
 beserta  link  Operations‐nya.  Kini  kita  akan  merubah 
tampilanya  menjadi  daftar 
diklat
yang masuk dalam kategori tersebut 
a.
Pertama masuk ke folder view dari kategori lalu buka file view.php,
hapus semua isinya 
lalu
ganti menjadi berikut ini 
<?php
$this->breadcrumbs=array(
  'Categories'=>array('index'),
 $model->category_name,
);?>
Hal
ini akan memberikan tampilan jejak posisi (breadcrumbs) dengan nama
kategori. 
b.
Selain breadcrumbs, tentunya harus ada isinya. Isi dari kategori
setelah diklik adalah list 
diklat.
Ada 5 langkah sbb yaitu: 
 1)
Pada  TrainingController  definisikan  dulu  parameter  Category 
pada  bagian 
ActionCreate.
Buka folder controller lalu buka file TrainingController.php atur
hingga 
tampilanya
sama dengan code dibawah ini: 
public
function actionCreate($id) 
 {
  $model=new
Training; 
  if(isset($_POST['Training']))
 {
  $model->attributes=$_POST['Training'];
  $model->categoryid=$id;
  if($model->save())
   $this->redirect(array('view','id'=>$model-
>idtraining));
  }
  $this->render('create',array(
   'model'=>$model,
  ));
 }
Dengan
 kode  ini,  orang  yang  akan  menambah  diklat  baru,  harus 
melewati  langkah 
mengeklik
 nama  kategori  dahulu.  Ini  bermanfaat  supaya  tidak  ada  diklat
 dibuat 
tanpa
kategori sama sekali. 
2)
Sekarang  saatnya  membuat  link  Menambah  Diklat  pada  view 
Category.  Masuk  ke 
 folder
view dari kategori lalu buka file view.php tambahkan kode dibawah ini
: 
<?php
$this->menu=array(
  array('label'=>'Tambah
Diklat Baru', 
'url'=>array('training/create','id'=>$model->idcategory
)),); 
?>
3)
Ubah juga view dari _form.php dari Training, hilangkan field
Categoryid atau untuk 
 amannya
uncheck dengan // 
 <?php
//echo $form->labelEx($model,'categoryid'); ?> 
 <?php
//echo $form->textField($model,'categoryid'); ?> 
 <?php
//echo $form->error($model,'categoryid'); ?> 
 Perintah
 diatas  tidak  digunakan  karena  pada  langkah  sebelumnya  kita 
telah 
 mendefinisikan
 kategori  untuk  setiap  Diklat  yang  dipilih,  selain  itu  kalau 
diaktifkan 
 juga
akan terjadi konflik dualisme kategori. 
4)
Dibagian  view  Kategori  ini,  selain  bisa  membuat  training  baru
 kita  juga  ingin 
 menambah
 peserta  ke  masing‐masing  diklat.  Buka  CategoryController.php 
atur 
 script
pada actionView menjadi seperti berikut: 
public
function actionView($id) 
 {
  $totraining=new
Training('search'); 
  $totraining->unsetAttributes();
  $totraining->categoryid=$id;
  $this->render('view',array(
   'model'=>$this->loadModel($id),
   'totraining'=>$totraining,
  ));
 }
5)
Masuk ke folder view dari kategori lalu buka  file view.php,  kita
ingin menampilkan 
 listing
 diklat  yang  dikategorikan  per  masing‐masing  kategori, 
tambahkan  kode 
 sebagai
berikut: 
<?php
$this->widget('zii.widgets.grid.CGridView', array( 
 'id'=>'training-grid',
 'dataProvider'=>$totraining->search(),
 //'filter'=>$totraining,
 'emptyText'=>'Belum
ada training pada kategori ini', 
 summaryText'=>'',
 'columns'=>array(
  array(
   'name'=>'No',
    'type'=>'raw',
  'value'=>'$data->idtraining',
 ),
  array(
  'name'=>'Nama
diklat', 
   'type'=>'raw',
  'value'=>'Chtml::link($data-
>name_training,array(\'training/view\',\'id\'=>$data->idtraining))',
 ),
  array(
  'name'=>'Jamlat',
   'type'=>'raw',
  'value'=>'$data->hours',
  ),
   )));?> 
Berhasil
sudah anda membuat tampilan statis kategori diklat sampai
keisi‐isinya.  
- Modifikasi Subisi Halaman Aplikasi
Langkah
 ini  adalah  mirip  langkah  membuat  kategori  ke  diklat,  kita 
akan  membuat  peserta 
yang
 dikategorikan  per  masing‐masing  diklat.  Hasilnya  adalah 
mirip  sebelumnya,  kalau 
sebelumnya
ketika kategori diklik, yang muncul adalah listing diklat, maka
langkah ini adalah 
jika
diklat diklik yang muncul adalah listing peserta diklat. Tentu ada
sedikit perbedaan yaitu 
tidak
dilakukan langkah 2) karena tidak ada sub sub isi halaman, artinya
peserta diklat tidak 
memiliki
 anak  kategori  lagi,  di  kondisi  tertentu  bisa  saja  ada  tapi 
untuk  kali  ini  tidak  ada. 
Langkah
ketiga juga tidak kita ulangi karena kita telah memasukkan pembahasan
pembuatan  
Mari
kita mulai. 
a.
Pertama masuk ke folder view dari training lalu buka file view.php,
hapus semua isinya 
 lalu
ganti menjadi berikut ini 
<?php
$this->breadcrumbs=array(
 'Categories'=>array('index'),
 $model->name_training,
);
?> 
 Hal
ini akan memberikan tampilan jejak posisi (breadcrumbs) dengan nama
diklat. 
b.
Selain  breadcrumbs,  tentunya  harus  ada  isinya.  Isi  dari 
diklat  setelah  diklik  adalah  list 
 peserta.
Ada 5 langkah sbb yaitu: 
1)
Pada  ParticipantController  definisikan  dulu  parameter  Training 
pada  bagian 
 ActionCreate.
 Buka  folder  controller  lalu  buka  file 
ParticipantController.php  atur 
 hingga
tampilanya sama dengan code dibawah ini: 
public
function actionCreate($id) 
 {
  $model=new
Participant; 
  if(isset($_POST['Participant']))
 {
  $model->attributes=$_POST['Participant'];
  $model->trainingid=$id;
  if($model->save())
   $this->redirect(array('view','id'=>$model-
>idparticipant));
 }
 $this->render('create',array(
  'model'=>$model,
 ));
}
Dengan
 kode  ini,  orang  yang  akan  menambah  diklat  baru,  harus 
melewati  langkah 
mengeklik
 nama  kategori  dahulu.  Ini  bermanfaat  supaya  tidak  ada  diklat
 dibuat 
tanpa
kategori sama sekali. 
2)
Sekarang  saatnya  membuat  link  Menambah  Peserta  pada  view 
Training.  Masuk  ke 
folder
view dari Training lalu buka file view.php tambahkan kode dibawah ini
: 
<?php
$this->menu=array(
 array('label'=>'Daftarkan
Peserta', 
'url'=>array('participant/create','id'=>$model->idtraining
)),); 
?>
3)
Ubah juga view dari _form.php dari Participant, hilangkan field
Trainingid atau untuk 
amannya
uncheck dengan // 
 <?php
//echo $form->labelEx($model,'trainingid'); ?> 
 <?php
//echo $form->textField($model,'trainingid'); ?> 
 <?php
//echo $form->error($model,'trainingid'); ?>?> 
Perintah
 diatas  tidak  digunakan  karena  pada  langkah  sebelumnya  kita 
telah 
mendefinisikan
 Diklat  untuk  setiap  Peserta  yang  dipilih,  selain  itu  kalau 
diaktifkan 
juga
akan terjadi konflik dualisme Diklat.  
4)
Dibagian  view  Training  ini,  selain  bisa  membuat  training  baru
 kita  juga  ingin 
menambah
peserta ke masing‐masing diklat. Buka TrainingController.php atur
script 
pada
actionView menjadi seperti berikut: 
public
function actionView($id) 
 {
  $toparticipant=new
Participant('search'); 
  $toparticipant->unsetAttributes();
  $toparticipant->trainingid=$id;
 $this->render('view',array(
  'model'=>$this->loadModel($id),
  'toparticipant'=>$toparticipant,
  ));
 }
5) Masuk ke  folder view dari 
Training  lalu  buka  file  view.php,  kita  ingin menampilkan 
listing  diklat  yang 
dikategorikan  per  masing‐masing  training,  tambahkan  kode 
sebagai berikut: ]
<?php
$this->widget('zii.widgets.grid.CGridView', array( 
 'id'=>'participant-grid',
 'dataProvider'=>$toparticipant->search(),
 //'filter'=>$toparticipant,
 'emptyText'=>'Belum
ada Peserta yang mendaftar pada diklat ini', 
 'summaryText'=>'',
 'columns'=>array(
  array(
  'name'=>'No',
   'type'=>'raw',
 'value'=>'$data->idparticipant',
 ),
 array(
 'name'=>'Nama
Peserta', 
 'type'=>'raw',
 'value'=>'Chtml::link($data-
>name_participant,array(\'participant/view\',\'id\'=>$data-
>idparticipant))',
),
 array(
 'name'=>'Jamlat',
  'type'=>'raw',
 'value'=>'$data->city',
),
)));?>
Satu  langkah  lagi  akan  saya 
tambahkan  yaitu  tampilan  dari  Participant,  buka  folder  view, 
participant, view.php 
- Breadcrumbs dari participant
$this->breadcrumbs=array(
 'Participants'=>array('index'),
 $model->idparticipant,
);
ubah menajdi:
$this->breadcrumbs=array(
 'Participants'=>array('index'),
$model->name_participant,
);
- Ubah pula operations dari participant
$this->menu=array(
 array('label'=>'List
Participant', 'url'=>array('index')), 
 array('label'=>'Create
Participant', 'url'=>array('create')), 
 array('label'=>'Update
Participant', 'url'=>array('update', 
'id'=>$model->idparticipant)),
 array('label'=>'Delete
Participant', 'url'=>'#', 
'linkOptions'=>array('submit'=>array('delete','id'=>$model-
>idparticipant),'confirm'=>'Are
you sure you want to delete this 
item?')),
 array('label'=>'Manage
Participant', 'url'=>array('admin')), 
);
Ubah menjadi seperti ini:
$this->menu=array(
 array('label'=>'Ubah
Peserta', 'url'=>array('update', 
'id'=>$model->idparticipant)),
 array('label'=>'Hapus
Peserta', 'url'=>'#', 
'linkOptions'=>array('submit'=>array('delete','id'=>$model-
>idparticipant),'confirm'=>'Are
you sure you want to delete this 
item?')),
);
- Kemudian ubah pula tampilan dari tulisan peserta diklat dari menjadi
<h1><?php
echo $model->name_participant; ?></h1> 
- Data peserta juga ingin kita ubah, dari seperti ini
<?php
$this->widget('zii.widgets.CDetailView', array( 
 'data'=>$model,
 'attributes'=>array(
  'idparticipant',
  'name_participant',
  'nip',
  'city',
  'trainingid',
 ),
));
?> 
Menjadi begini 
<?php
$this->widget('zii.widgets.CDetailView', array( 
 'data'=>$model,
  'attributes'=>array(
  'name_participant',
  'nip',
  'city',
),
));
?> 
Langkah  berikutnya,  anda  bisa 
berkreasi  sendiri  tentunya.  Misal  dihalaman  update  ingin 
diubah,  atau  halaman  Manage 
menurut  anda  perlu  ditampilkan,  halaman  create  ingin 
dimodif dll. Hal penting yang
harus diperhatikan adalah bahwa, setiap halaman view adalah 
hasil representasi dari proses
coding yang telah kita buat di controller, function actionView, 
action adalah akan menghasilkan
view.php, actionCreate akan menghasilkan create.php dst. 
Selamat mencoba....!!!

