posted by aryo tejo w on September 15, 2016

Sesuai janji saya di artikel judul  CgridView update otomatis saat create, update dan delete pada 1 tampilan  # 1 , akan saya lanjutkan untuk membuat trik di gridview.  DI artikel pertama, saat upload file, ada 2 kejadian yang berlangsung: mengunggah file di folder tertentu dan menyimpan nama file pada tabel tertentu.
Sekarang akan dibahas cara untuk menghapus data yang diunggah di tabel dan sekaligus untuk mendelete file yang tersimpan. Dan secara langsung akan menghilangkan data di gridview nya sehingga selalu update.

1.Buka file di view sebagai form mengunggah
Modifikasi cgridview 
(
             'class' => 'CButtonColumn',  
             'template' => '{delete}',
  )

Menjadi seperti di bawah ini:
array( 'class' => 'CButtonColumn',
                'template' => '{open}',
                'buttons' => array(
  'open' => array(
                 'url' => 'Yii::app()->createUrl("fileDiupload/conAktif", array("id"=>$data->id))',
                 'imageUrl' => Yii::app()->request->baseUrl . '/images/delete.png',  )
            )
),

 
2.Buatlah fungsi conAktif di controller nya
public function actionConAktif($id)
        {
                        $konfirmasi=1;
                        $model=$this->loadModel($id);
                       
        $this->render('conaktif',array(
                                        'model'=>$model,
                                        'konfirmasi'=>$konfirmasi,
                        ));
        }

3.Buatlah view conaktif
<?php echo $this->renderPartial('_conformAktif', array(
                'model'=>$model,
                'konfirmasi'=>$konfirmasi,
                )); ?>

 
4.Buatlah view _ conformAktif'
<?php
 
          if(isset($konfirmasi))
           {
                           ?>
                          
  <script>
 
 
                                         hasil=window.confirm("Yakin hapus file/data ini ?");
                                          if(hasil)
                                                        {
                                                          
                                                        window.location.href="../hapus/" + <?php echo $model->id ?>;
                                                        }
                                                        else
                                                        {
                                                                       
                                                                        window.location.href="../../unggah/unggahfile";
                                                        }

                                        </script>
                            <?php  
            }                             ?>  
     
 
5. Setelah itu kembali ke controler untuk membuat fungsi hapus
public function actionHapus($id)
        {
                        //hapus item data yg terpilih'
                        $model=$this->loadModel($id);
                        $file = $model->nama_file;
                       
                        $folder =Yii::app()->params['uploadDir'];
                         if( $file != null  &&  file_exists( $folder.'/'.$file ) )
                         {
             unlink(getcwd().'/'.$folder.$file); //hapus file yg terpilih datanya
                                         if ($model->delete())
                                         {
                                        if(!isset($_GET['ajax']))
        $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('unggah/unggahfile'));
                                         }
                         
                        }
                       
        }


Silakan ikuti langkah di atas, jika ada bug pelajari eror nya,

Leave a Comment

Fields with * are required.