Berita

Akses SQL Menggunakan CArrayDataProvider(...)

12 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 Dorong Peningkatan Kompetensi Guru PAUD melalui Pelatihan Pembelajaran Bahasa Inggris untuk Anak Usia Dini
UTDI Dorong Peningkatan Kompetensi Guru PAUD melalui Pelatihan Pembelajaran Bahasa Inggris untuk Anak Usia Dini

4 jam yang lalu

[Bantul, 10 Juni 2026] – Sebagai bagian dari komitmen Universitas Teknologi Digital Indonesia (UTDI) dalam memberikan kontribusi nyata kepada masyarakat, dosen Program Studi ...

Selengkapnya
Perkuat Kualitas SDM Menuju Indonesia Emas 2045, UTDI Resmi Jalin Kerja Sama Strategis Bidang IT dengan Mabes TNI AL
Perkuat Kualitas SDM Menuju Indonesia Emas 2045, UTDI Resmi Jalin Kerja Sama Strategis Bidang IT dengan Mabes TNI AL

4 hari yang lalu

[Jakarta, 11 Juni 2026] – Universitas Teknologi Digital Indonesia (UTDI) secara resmi menandatangani Nota Kesepahaman (MoU) dengan Markas Besar Tentara Nasional Indonesia Angkatan ...

Selengkapnya
Mahasiswa UTDI Lolos Program Kreativitas Mahasiswa (PKM) Bidang Artikel Ilmiah
Mahasiswa UTDI Lolos Program Kreativitas Mahasiswa (PKM) Bidang Artikel Ilmiah

19 hari yang lalu

YOGYAKARTA – Tim peneliti mahasiswa dari Universitas Teknologi Digital Indonesia (UTDI) berhasil menorehkan prestasi membanggakan dengan lolos dalam Program Kreativitas Mahasiswa (...

Selengkapnya