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

Mahasiswi Bisnis Digital UTDI Raih Prestasi di Ajang Olimpiade Sains Tingkat Nasional
Mahasiswi Bisnis Digital UTDI Raih Prestasi di Ajang Olimpiade Sains Tingkat Nasional

9 hari yang lalu

[Yogyakarta, 23 September 2025] - Mahasiswa Universitas Teknologi Digital Indonesia (UTDI), Etty Savitri, dari Program Studi Bisnis Digital berhasil mengharumkan nama ...

Selengkapnya
Mahasiswa UTDI Raih Medali di Pekan Olahraga Daerah DIY 2025
Mahasiswa UTDI Raih Medali di Pekan Olahraga Daerah DIY 2025

9 hari yang lalu

[Yogyakarta, 24 September 2025] – Prestasi membanggakan kembali diraih oleh mahasiswa Universitas Teknologi Digital Indonesia (UTDI). Ayok Dwi Nugroho (245610040), mahasiswa Program Studi Sistem ...

Selengkapnya
Universitas Teknologi Digital Indonesia (UTDI) Sukses Menyelenggarakan Wisuda Periode II T.A. 2024/2025 dengan tema Harmoni Nurani dan Digitalisasi untuk Membangun Negeri
Universitas Teknologi Digital Indonesia (UTDI) Sukses Menyelenggarakan Wisuda Periode II T.A. 2024/2025 dengan tema Harmoni Nurani dan Digitalisasi untuk Membangun Negeri

10 hari yang lalu

[Yogyakarta, 4 Oktober 2025] – Universitas Teknologi Digital Indonesia (UTDI) dengan bangga menyelenggarakan Rapat Senat Terbuka-Wisuda Diploma Tiga, Sarjana, dan Magister Periode II ...

Selengkapnya