Terkadang mengalami kesulitan untuk mengatasi kompleksitas realasi tabel, Yii walaupan relasi bisa dilakukan dengan ORM, tetap menyediakan perintah dengan menggunakan SQL. Perintah SQL dijalankan dengan menggunakan methode $daftarBuku=Yii::app()->db->createCommand($sql)->queryAll();
isi $sql=”SELECT t1.k1, t2.k2 …. FROM t1,t2 WHERE t1.pk1=t2.pk1”
Contoh:
Buka model TblBuku.php Tambahkan fungsi berikut:
public function lihatBuku()
{
$sql='SELECT
tbl_buku.id
, tbl_buku.judul_buku
, tbl_penerbit.nama_penerbit
, tbl_pengarang.nama_pengarang
, tbl_buku.isbn_issn
FROM
kuliah.tbl_buku
INNER JOIN kuliah.tbl_penerbit
ON (tbl_buku.penerbit_id = tbl_penerbit.id)
INNER JOIN kuliah.tbl_pengarang
ON (tbl_buku.pengarang_id = tbl_pengarang.id)
ORDER BY tbl_buku.id ';
$daftarBuku=Yii::app()->db->createCommand($sql)->queryAll();
$dataProvider=new CArrayDataProvider(
$daftarBuku,array(
'keyField'=>false,
'pagination'=>array('pageSize'=>100,),
));
return $dataProvider;
}
Perintah :
$daftarBuku=Yii::app()->db->createCommand($sql)->queryAll(); menjalankan sql disimpan ke dalam varibel $daftarBuku
Kemudian tambahkan TblBukuController.php
public function actionDaftarBuku()
{
$model=new TblBuku;
$this->render('daftarBuku',array('model'=>$model,
));
}
dan bagian accessRules
public function accessRules()
{
return array(
array('allow',
// allow all users to perform 'index' and 'view' actions
'actions'=>array('index','view','daftarBuku'),
'users'=>array('*'),
..............}
Tambahkan file daftarBuku.php dalam folder /views/tblBuku/ seperti skrip berikut:
<h1>
DAFTAR BUKU
</h1>
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'tbl-buku-grid',
'dataProvider'=>$model->lihatBuku(),
'columns'=>array(
array(
'name'=>'id',
'type'=>'raw',
'header'=>'NO',
'value'=>'CHtml::encode($data["id"])',
'htmlOptions'=>array('width'=>'3%','style'=>'text-align:left'),
),
array(
'name'=>'judul',
'type'=>'raw',
'header'=>'JUDUL BUKU',
'value'=>'CHtml::encode($data["judul_buku"])',
'htmlOptions'=>array('width'=>'30%','style'=>'text-align:left'),
),
array(
'name'=>'nama_pengarang',
'type'=>'raw',
'header'=>'NAMA PENGARANG',
'value'=>'CHtml::encode($data["nama_pengarang"])',
'htmlOptions'=>array('width'=>'30%','style'=>'text-align:left'),
),
array(
'name'=>'isbn_issn',
'type'=>'raw',
'header'=>'ISBN/ISSN',
'value'=>'CHtml::encode($data["isbn_issn"])',
'htmlOptions'=>array('width'=>'10%','style'=>'text-align:left'),
),
),
)); ?>
Lihat hasilnya
Cara kerja MVC
Sampah suatu benda benda yang tidak ternilai atau tidak berharga yang ada di sekitar lingkungan masyarakat. Sampah di Indonesia merupakan ... Selengkapnya
Sejumlah dosen dari berbagai perguruan tinggi di Jogja menjalankan program pengembangan mitra desa atau PPDM di Desa Wisata Kaki Langit ... Selengkapnya
Kualifikasi : 1. Warga Negara Indonesia 2. Pendidikan : Lulud Doktor dari Universitas dengan prodi yang terkait dengan Informatika serta terakreditasi A. Jika lulus ... Selengkapnya