我正在使用cakephp 2.6在app中工作,使用ajax调用,控制器操作会更改数据库中的值。
这些是我在控制器中的功能
public function on() {
$this->autoRender = false;
$this->Doc->id=$this->request->data['id'];
$this->Doc->saveField("private",1);
return true;
}
public function off() {
$this->autoRender = false;
$this->Doc->id=$this->request->data['id'];
$this->Doc->saveField("private",0);
return true;
}
我在我的视图中使用此代码调用这些函数:
$('.flat-toggle').on('click', function() {
if ($(this).hasClass('on')) {
$.ajax({
url : 'docs/off',
type: 'POST',
dataType: 'json',
data: {id:"<?php echo $doc['Doc']['id']?>"},
success : function(data){
$('.flat-toggle').removeClass('on');
},
error : function(data){
console.log(data);
}
});
} else {
$.ajax({
url : 'docs/on',
type: 'POST',
dataType: 'json',
data: {id:"<?php echo $doc['Doc']['id']?>"},
success : function(data){
$('.flat-toggle').addClass('on');
},
error : function(data){
console.log(data);
}
});
}
});
但是当我在beforeFilter中添加函数时,仅适用:
function beforeFilter() {
$this->Auth->authenticate = array('Ldap');
$this->Auth->allow('on','off');
parent::beforeFilter();
}
我使用isAuthorized,我认为不要使用ajax调用。
如果没有允许函数,我如何使用此代码?
提前致谢