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

DIES  NATALIS UTDI KE 46 : TEKNOLOGI DIGITAL UNTUK MENDUKUNG PROGRAM KAMPUS BERDAMPAK
DIES NATALIS UTDI KE 46 : TEKNOLOGI DIGITAL UNTUK MENDUKUNG PROGRAM KAMPUS BERDAMPAK

15 jam yang lalu

[Yogyakarta, 1 Juli 2025] - Universitas Teknologi Digital Indonesia yang merupakan pengembangan bentuk dari STMIK Akakom menyelenggarakan Rapat Senat Terbuka Pidato ...

Selengkapnya
UTDI Gelar Kenduri Syukuran Dies Natalis ke-46: Wujud Rasa Syukur dan Kebersamaan
UTDI Gelar Kenduri Syukuran Dies Natalis ke-46: Wujud Rasa Syukur dan Kebersamaan

6 hari yang lalu

[Yogyakarta, 29 Juni 2025] — Dalam rangka memperingati Dies Natalis ke-46, Universitas Teknologi Digital Indonesia (UTDI) mengadakan kenduri syukuran sebagai bentuk ungkapan rasa ...

Selengkapnya
UTDI Jalin Kerja Sama Strategis dengan Alfamidi dan Selenggarakan Kuliah Umum Bertema Bisnis Ritel Modern
UTDI Jalin Kerja Sama Strategis dengan Alfamidi dan Selenggarakan Kuliah Umum Bertema Bisnis Ritel Modern

13 hari yang lalu

[Yogyakarta, 23 Juni 2025] — Universitas Teknologi Digital Indonesia (UTDI) terus memperluas jejaring kemitraannya dengan dunia industri. Kali ini, UTDI resmi menjalin kerja ...

Selengkapnya

Teknologi Populer