Berita

Akses SQL Menggunakan CArrayDataProvider(...)

11 tahun yang lalu

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

Mengunakan Parameter input nama pengarang


Berita Lainnya

UTDI dan Universiti Pendidikan Sultan Idris Malaysia Teken MoU untuk Perkuat Kolaborasi Internasional
UTDI dan Universiti Pendidikan Sultan Idris Malaysia Teken MoU untuk Perkuat Kolaborasi Internasional

13 menit yang lalu

[Yogyakarta, 1 September 2025] – Universitas Teknologi Digital Indonesia (UTDI) resmi menandatangani MoU dengan Universiti Pendidikan Sultan Idris (UPSI) Malaysia sebagai langkah strategis ...

Selengkapnya
UTDI dan Dinas Pariwisata Bantul Implementasikan Kerja Sama melalui Aplikasi BETI SEKEBON
UTDI dan Dinas Pariwisata Bantul Implementasikan Kerja Sama melalui Aplikasi BETI SEKEBON

5 hari yang lalu

[Yogyakarta, 17 Agustus 2025] – Universitas Teknologi Digital Indonesia (UTDI) bersama Dinas Pariwisata Kabupaten Bantul resmi mengimplementasikan kerja sama strategis dalam bidang digitalisasi ...

Selengkapnya
LLDIKTI Wilayah V Lakukan Kunjungan Silaturahmi ke UTDI, Dorong Strategi Leapfrogging untuk Peningkatan Kualitas Pendidikan
LLDIKTI Wilayah V Lakukan Kunjungan Silaturahmi ke UTDI, Dorong Strategi Leapfrogging untuk Peningkatan Kualitas Pendidikan

6 hari yang lalu

[Yogyakarta, 27 Agustus 2025] – Universitas Teknologi Digital Indonesia (UTDI) menerima kunjungan silaturahmi dari Kepala LLDIKTI Wilayah V beserta jajaran, dalam rangka memperkuat ...

Selengkapnya