Berita

Filtering menggunakan CDbCriteria Perameter Input dan condition

11 tahun yang lalu

(oleh : Badiyanto)

 Lanjutan dari tutorial sebelumnya,  bagian ini akan menampilkan data buku dengan cara  memasukkan pengarang terlebih dahulu menggunakan kelas CDbCriteria.  Anda bisa menambahkan method dalam model TblBuku.php sebagai berikut :

public function lihatBuku3($id)
    {
        $criteria=new CDbCriteria(array(
                      "condition" => "pengarang_id=:pengarang_id",
                      'params' => array(':pengarang_id'=>$id),
                    ));

        $criteria->compare('id',$this->id);
        $criteria->compare('judul_buku',$this->judul_buku,true);
        $criteria->compare('pengarang_id',$this->pengarang_id);
        $criteria->compare('penerbit_id',$this->penerbit_id);
        $criteria->compare('isbn_issn',$this->isbn_issn,true);

        return new CActiveDataProvider($this, array(
            'criteria'=>$criteria,
        ));
    }     
}


Perintah:  $criteria=new CDbCriteria(array(
                      "condition" => "pengarang_id=:pengarang_id",
                      'params' => array(':pengarang_id'=>$id),
                    ));

pengararan_id nama kolom pada tabel tbl_buku, :pengarang_id", nama parameter,
 'params' => array(':pengarang_id'=>$id), memasukkan nilai parameter dengan variabel $id.

 $criteria->compare('id',$this->id); digunakan untuk filtering pencarian.

Perintah :
return new CActiveDataProvider($this, array(
            'criteria'=>$criteria,

Mengirimkan hasil isi dari $model ke CGridView.


Kemudian tambahkan methode dalam TblBukuController.php fungsi aksi actionInputPengarang3() sebagai input nama pengarang dan
actionDaftarBuku3() seperti pada kode berikut :

public function actionInputPengarang3()
    {
        $model=new TblBuku;
        $model->unsetAttributes();  // clear any default values
        if(isset($_POST['TblBuku'])){
            $id = $_POST['TblBuku']['pengarang_id'];
            $this->redirect(array('daftarBuku3','id'=>$id));
         }
        $this->render('inputPengarang3',array('model'=>$model,));                   
    }
public function actionDaftarBuku3()
    {
        $model=new TblBuku;
        $model->unsetAttributes();  // clear any default values
        if(isset($_GET['TblBuku']))
            $model->attributes=$_GET['TblBuku'];
        $this->render('daftarBuku3',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','daftarBuku2','inputPengarang','daftarBuku3','inputPengarang3'),
                'users'=>array('*'),
            ),
            array('allow', // allow authenticated user to perform 'create' and 'update' actions
                'actions'=>array('create','update','daftarBuku2'),
                'users'=>array('@'),
            ),
            array('allow', // allow admin user to perform 'admin' and 'delete' actions
                'actions'=>array('admin','delete'),
                'users'=>array('admin'),
            ),
            array('deny',  // deny all users
                'users'=>array('*'),
            ),
        );
    }

 

dan tambahkan program dalam view/tbelBuku/ dengan nama file daftarBuku3.php

<?php
/* @var $this TblBukuController */
/* @var $model TblBuku */
/* @var $form CActiveForm */
?>
<div class="wide form">
<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'tbl-buku-form',
    'enableAjaxValidation'=>false,)); ?>
    <p class="note">Fields with <span class="required">*</span> are required.</p>
    <?php echo $form->errorSummary($model); ?>
    <div class="row">
        <?php echo $form->labelEx($model,'pengarang_id'); ?>
       
        <?php echo $form->dropDownList($model,'pengarang_id',
                  CHtml::listData(TblPengarang::model()->findAll(), 'id','nama_pengarang'),
              array('prompt'=>'= Pilihan =','style'=>'width:200px;')); ?>
       
        <?php echo $form->error($model,'pengarang_id'); ?>
    </div>   
    <div class="row buttons">
        <?php echo CHtml::submitButton('Proses'); ?>
    </div>
<?php $this->endWidget(); ?>
</div><!-- form -->

Laporan daftar buku buatlah file daftarBuku3.php kemudian disampan ke viws/tblBuku/..

file daftarBuku.php

<h1>
DAFTAR BUKU MENURUT PENGARANG
</h1>
<!-- // menbaca id pengarang// -->
<?php $id = $_GET["id"]; ?>
<?php $this->widget('zii.widgets.CDetailView', array(
    'data'=>$model,
    'attributes'=>array(
    array(
          'label'=>'Nama Pengrarang',
          'type'=>'html',
          'value'=>TblPengarang::model()->findByPk($id)->nama_pengarang,
          ),
    array(
          'label'=>'Alamat',
          'type'=>'html',
          'value'=>TblPengarang::model()->findByPk($id)->alamat,
          ),     
    ),
)); ?>

<!-- menampilkan tabel dengan grid.Cgridwiew//-->
<?php $this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'tbl-buku-grid',
    'dataProvider'=>$model->lihatBuku3($id),
    '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 PENERBIT',
            'value'=>'CHtml::encode($data->penerbit->nama_penerbit)',
            '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'),

        ),   
    ),
)); ?>

Salahkan dicoba http://localhost/coba/index.php?r=inputPengarang3



Berita Lainnya

Pengumuman Pemenang Lelang
Pengumuman Pemenang Lelang

9 bulan yang lalu

Pengumuman Pemenang Lelang

Selengkapnya
RAPAT SENAT TERBUKA DIES NATALIS UTDI KE-45: UTDI Berkomitmen Pada Pengembangan Teknologi Digital Dalam Mendukung Pariwisata Berkelanjutan
RAPAT SENAT TERBUKA DIES NATALIS UTDI KE-45: UTDI Berkomitmen Pada Pengembangan Teknologi Digital Dalam Mendukung Pariwisata Berkelanjutan

9 bulan yang lalu

Yogyakarta, 1 Juli 2024 - Universitas Teknologi Digital Indonesia (UTDI) dengan bangga merayakan Dies Natalis ke-45 atau Lustrum 9 di kampus UTDI. Acara ...

Selengkapnya
UTDI dan MWC NU Banguntapan Jalin Kerjasama Strategis untuk Kemajuan Bersama
UTDI dan MWC NU Banguntapan Jalin Kerjasama Strategis untuk Kemajuan Bersama

10 bulan yang lalu

YOGYAKARTA - Pada Jum'at, 28 Juni 2024, Majelis Wakil Cabang Nahdlatul Ulama (MWC NU) Kapanewon Banguntapan mengadakan audiensi dengan Universitas Teknologi Digital ...

Selengkapnya

Teknologi Populer