0 follower

Manajemen Comment

Manajemen comment termasuk melakukan update, delete dan meng-approve suatu comment. Operasi-operasi ini diimplementasikan sebagai action di dalam kelas CommentController.

1. Mengupdate dan Menghapus Comment

Kode yang digenerate oleh yiic untuk mengupdate dan menghapus comment tidak mengalami perubahan.

2. Menyetujui Comment

Ketika comment baru saja dibuat, status mereka adalah pending approval, dan perlu di-approve supaya bisa dilihat oleh user guest. Menyetujui sebuah comment berfokus pada mengubah kolom status pada comment.

Kita membuat sebuah method actionApprove() di CommentController sebagai berikut,

public function actionApprove()
{
    if(Yii::app()->request->isPostRequest)
    {
        $comment=$this->loadModel();
        $comment->approve();
        $this->redirect(array('index'));
    }
    else
        throw new CHttpException(400,'Invalid request...');
}

Di atas, ketika action approve dipanggil melalui request POST, maka kita memanggil method approve() yang didefinisikan di model Comment untuk mengubah statusnya. Kemudian, kita akan me-redirect browser user ke halaman menampilkan post milik comment tersebut.

Kita juga memodifikasi method actionIndex() dari Comment untuk menampilkan seluruh comment. Kita ingin seluruh comment yang sedang pending muncul lebih awal.

public function actionIndex()
{
    $dataProvider=new CActiveDataProvider('Comment', array(
        'criteria'=>array(
            'with'=>'post',
            'order'=>'t.status, t.create_time DESC',
        ),
    ));
 
    $this->render('index',array(
        'dataProvider'=>$dataProvider,
    ));
}

Perhatikan kode di atas, karena antara tbl_post dan tbl_comment memiliki kolom status dan create_time, kita perlu membedakan kedua kolom tersebut dengan memasang prefiks dengan nama alias tabel. Seperti yang dijelaskan dalam guide, alias untuk tabel utama di dalam relational query adalah t. Oleh karena itu, kita memberi awalan t untuk kolom status dan create_time pada code di atas.

Seperti view index post, view index untuk CommentController menggunakan CListView untuk menampilkan daftar comment yang pada berikutnya menggunakan partial view /wwwroot/blog/protected/views/comment/_view.php untuk menampilkan detail dari setiap comment individu. Kita tidak akan membahas secara detail di sini. Bagi yang tertarik dengan file ini bisa melihatnya di demo blog /wwwroot/yii/demos/blog/protected/views/comment/_view.php..

Found a typo or you think this page needs improvement?
Edit it on github !