Berita

Filtering menggunakan CDbCriteria Perameter Input dan condition

12 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

Perkuat Keamanan Siber hingga Literasi Digital, UTDI Jajaki Kerja Sama Strategis dengan Diskominfo Kalsel
Perkuat Keamanan Siber hingga Literasi Digital, UTDI Jajaki Kerja Sama Strategis dengan Diskominfo Kalsel

satu hari yang lalu

YOGYAKARTA – Dalam upaya memperluas jaringan kerja sama dan kontribusi nyata bagi daerah, Universitas Teknologi Digital Indonesia (UTDI) menggelar pertemuan strategis ...

Selengkapnya
UTDI dan TechnoGIS Jajaki Kerja Sama Strategis Magang Hingga Akselerasi Hilirisasi Penelitian
UTDI dan TechnoGIS Jajaki Kerja Sama Strategis Magang Hingga Akselerasi Hilirisasi Penelitian

satu hari yang lalu

YOGYAKARTA – Dalam rangka memperkuat sinergi antara dunia akademik dan industri, Fakultas Teknologi Informasi (FTI) serta Fakultas Manajemen Bisnis (FMB) Universitas ...

Selengkapnya
Tingkatkan Kualitas Tri Dharma dan SDM, Universitas Cahaya Surya Lakukan Studi Banding ke UTDI
Tingkatkan Kualitas Tri Dharma dan SDM, Universitas Cahaya Surya Lakukan Studi Banding ke UTDI

satu hari yang lalu

YOGYAKARTA – Universitas Cahaya Surya melakukan kunjungan kerja dalam rangka studi banding ke Universitas Teknologi Digital Indonesia (UTDI) pada Kamis, 23 Juli 2026. ...

Selengkapnya