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

Sosialisasi Game Paravox oleh ESI DIY di UTDI dan Kampus-Kampus Yogyakarta: UTDI Raih Juara di Paravox Battle Campus!
Sosialisasi Game Paravox oleh ESI DIY di UTDI dan Kampus-Kampus Yogyakarta: UTDI Raih Juara di Paravox Battle Campus!

satu bulan yang lalu

Industri game di Indonesia semakin berkembang pesat, dan salah satu game terbaru yang mencuri perhatian adalah Paravox, sebuah 3v3 shooter ...

Selengkapnya
Universitas Teknologi Digital Indonesia (UTDI) Jalin Kerjasama dengan TP PKK DIY, Tanda Tangani MoU untuk Pengembangan Teknologi dan Pemberdayaan Masyarakat
Universitas Teknologi Digital Indonesia (UTDI) Jalin Kerjasama dengan TP PKK DIY, Tanda Tangani MoU untuk Pengembangan Teknologi dan Pemberdayaan Masyarakat

2 bulan yang lalu

[Yogyakarta, 17 Oktober 2024] Universitas Teknologi Digital Indonesia (UTDI) kembali memperluas jaringan kerjasamanya melalui penandatanganan MoU dengan Tim Penggerak Pemberdayaan Kesejahteraan Keluarga ...

Selengkapnya
Mahasiswa Universitas Teknologi Digital Indonesia Raih Prestasi Gemilang di Bidang Teknologi dan Olahraga
Mahasiswa Universitas Teknologi Digital Indonesia Raih Prestasi Gemilang di Bidang Teknologi dan Olahraga

2 bulan yang lalu

Mahasiswi Universitas Teknologi Digital Indonesia (UTDI), Aisyah Dita Saputri, berhasil meraih juara 2 pada kompetisi Information and Technology Festival 2024 (Intechfest 2024) Kategori ...

Selengkapnya