CakePHP:创建自己的函数

时间:2010-11-01 13:55:55

标签: php cakephp

我有一个文章控制器&模型。我希望有一个函数,在单击链接时将一个加到整数。所以我说了一个“我喜欢”按钮(链接)它带我到文章/ thumbsup然后它将采取该文章的thumbsup字段并将其增加一,然后保存文章,并重定向到视图。

我不确定如何以这种方式修改记录。我需要加载文章,修改数据然后保存。

我的希望是这可以通过javascript处理,因此没有人会看到网址更改。

有人可以帮助我吗?

谢谢,

Jonesy

谢谢,

比利

1 个答案:

答案 0 :(得分:1)

您可以使用AjaxRequest执行此操作。

模型/ article.php:

function thumbsup($id = null)
  {
  $conditions = array('Article.id' => $id);
  $this->updateAll(
    array('Article.thumbsup' => 'Article.thumbsup + 1'),
    $conditions
    );
  $article = $this->find(
    'first',
    array('conditions' => $conditions, 'fields' => array('Article.thumbsup'))
    );
  return $article['Article']['thumbsup'];
  }

控制器/ articles_controller.php:

function thumbsup($id = null)
  {
  $this->set('count', $this->Article->thumbsup($id));
  $this->layout = 'ajax';
  }

视图/文章/ thumbsup.ctp:

<?php echo $count; ?>

根目录/ JS / thumbsup.js:

$(document).ready(function()
  {
  $('.iLikeSomething').click(function()
    {
    $.post('http://yoursite.com/articles/incrementThumbsup/'+this.id, function(data)
      {
      $('#iLikeSomethingCount').html(data);
      });
    });
  });

点击的Html示例:

<span class="iLikeSomething" id="insertYourArticleIdHere" style="cursor: pointer;">iLike</span>
<div id="iLikeSomethingCount">0</div>