如何修复CakePHP中的审批系统

时间:2015-05-26 14:15:41

标签: php cakephp comments

我创建了一个博客,我可以对我的文章发表评论,然后我做了一个批准按钮,需要进行批准功能。

我需要让它发挥作用。无论我尝试什么,我都不能。我希望能够在发布之前批准或不批准。我已经尝试了我能想到的一切。

<?php

namespace App\Controller;

class CommentsController extends AppController
{

    public function index()
    {
        $comments = $this->Comments->find('all');
        $this->set(compact('comments'));
    }

    public function view($id = null)
    {
        $comment = $this->Comments->get($id);
        $this->set(compact('comment'));
    }

    public function add()
    {
    $comment = $this->Comments->newEntity();
    if ($this->request->is('post')) {
        $comment = $this->Comments->patchEntity($comment, $this->request->data);
        $comment->user_id = $this->Auth->user('id');
        $comment->aproved = 0;
        $comment->article_id = $this->request->data['article_id'];
        if ($this->Comments->save($comment)) {
            $this->Flash->success(__('Your comment has been saved.'));
            return $this->redirect(['controller' => 'Articles', 'action' => 'view', $comment->article_id]);
        }
        $this->Flash->error(__('Unable to add your comment.'));
    }
    $this->set('comment', $comment);
    }

    public function aprove()
    {

    }


}

1 个答案:

答案 0 :(得分:1)

试试这个

您的链接应如下所示:

$this->Html->link('approve', array('controller' => 'your-controller', 'action' => 'aprove', $comment_id, $value['Comment']['aproved']));

你的控制器功能是:

public function aprove($comment_id, $approve_value)
{
  if(isset($comment_id) && !empty($comment_id)){
       $approve = $this->Comments->find('first',array('conditions'=>array('id'=>$comment_id),'fields'=>array('Comment.id, Comment.approve')));
       if(!empty($approve)){
           $this->Comments->id = $approve['Comment']['id'];
           $this->Comments->saveField('aproved', $approve_value);
       }
  }
}