我有这个链接,点击时更新数据库中的字段:
echo $this->Js->link('LinkToCallAjax', '/posts/visitCountUpdate/'.$post['Post']['post_id'], array('update' => 'visit_'.$post['Post']['post_id']), null, false);
以及将转到指定网址的锚文本。
如何组合2,以便当我点击链接时,它会更新数据库中的字段,然后转到指定的URL?
已经尝试过onclick(location.href)并且它更新了数据库,但是因为cake正在搜索visitCountUpdate.ctp< - 控制器中的函数而得到错误。
有办法做到这一点吗?
答案 0 :(得分:1)
将重定向放在要执行的函数中,并使链接成为一个帖子链接(这样就不需要关联.ctp文件) - 所以你先执行你想要的方法,然后再执行重定向到具有.ctp文件的操作。
在你的控制器中有:
public function SomeFunction($variableToPass) {
//do something to do with the database (e.g. update records)
return $this->redirect(
array(
'controller' => 'aController',
'action' => 'anAction',
$anotherVariableToPass
)
);
}
然后您的链接就像:
$this->Form->postLink(
'Link Text',
array(
'controller' => 'posts',
'action' => 'SomeFuntion',
$variableToPass
)
);