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

Kerjasama Strategis antara Universitas Teknologi Digital Indonesia dan Institut Teknologi Yogyakarta: Penandatanganan MoU untuk Peningkatan Kualitas Pendidikan
Kerjasama Strategis antara Universitas Teknologi Digital Indonesia dan Institut Teknologi Yogyakarta: Penandatanganan MoU untuk Peningkatan Kualitas Pendidikan

10 bulan yang lalu

[Yogyakarta, 21 Agustus 2024] Universitas Teknologi Digital Indonesia (UTDI) dan Institut Teknologi Yogyakarta (ITY) secara resmi menandatangani MoU sebagai langkah awal kolaborasi ...

Selengkapnya
WISUDA 2024 : Universitas Teknologi Digital Indonesia (UTDI) Sukses Mencetak Ahli-Ahli Digital
WISUDA 2024 : Universitas Teknologi Digital Indonesia (UTDI) Sukses Mencetak Ahli-Ahli Digital

10 bulan yang lalu

Yogyakarta, 5 Oktober 2024 - Universitas Teknologi Digital Indonesia (UTDI) telah melaksanakan perhelatan agenda Rapat Senat Terbuka-Wisuda Diploma Tiga, Sarjana, dan Magister ...

Selengkapnya
PESONA 2024: “Sinergi Teknologi dan Humanisme di Era 5.0” Sukses Digelar di UTDI
PESONA 2024: “Sinergi Teknologi dan Humanisme di Era 5.0” Sukses Digelar di UTDI

10 bulan yang lalu

Yogyakarta, 21 September 2024 – Acara Pengenalan Studi dan Orientasi Kampus Universitas Teknologi Digital Indonesia (PESONA UTDI) 2024 sukses digelar pada tanggal 17 hingga 20 September 2024. ...

Selengkapnya