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

Ngobrol Teknologi
Ngobrol Teknologi "Pengiriman Agile yang Disiplin sebagai Famework untuk Membangun Software".

4 tahun yang lalu

Ngobrol Teknologi 010720: Pengiriman Agile yang Disiplin sebagai Famework untuk Membangun Software. Diselenggarakan oleh STMIK AKAKOM Yogyakarta. Pelaksanaan: Rabu, 1 Juli 2020 mulai ...

Selengkapnya
WEBINAR : Peran Teknologi Digital untuk Mendukung Tatanan Kehidupan Baru.
WEBINAR : Peran Teknologi Digital untuk Mendukung Tatanan Kehidupan Baru.

4 tahun yang lalu

WEBINAR : Peran Teknologi Digital untuk Mendukung Tatanan Kehidupan Baru. Diselenggarakan dalam Rangka Dies Natalis STMIK AKAKOM ke-41. Pelaksanaan: Selasa, 30 Juni 2020 ...

Selengkapnya
PERPANJANGAN  KEDUA KESIAPSIAGAAN dan PENCEGAHAN COVID-19 di LINGKUNGAN STMIK AKAKOM YOGYAKARTA
PERPANJANGAN KEDUA KESIAPSIAGAAN dan PENCEGAHAN COVID-19 di LINGKUNGAN STMIK AKAKOM YOGYAKARTA

4 tahun yang lalu

STMIK Akakom Yogyakarta menyiapkan Perpanjangan Kedua Status Siaga COVID-19 melalui pembelajaran daring dan Work From Home (WFH). Berlaku sejak surat ...

Selengkapnya