我正在尝试从javascript文件向cakephp控制器发送ajax请求.ajax正在发送一个简单的json对象(为简单起见,我在这个例子中对其进行了硬编码).
当我进行日志记录时,服务器能够将json字符串解码为对象.该$this->Votes->delete函数被成功调用.我的问题是,一切都按预期工作,除了我仍然收到错误信息.
下面是我的代码,下面是我从中得到的输出.
使用Javascript:
function unvote() {
$.ajax({
type: 'POST',
url: '../votes/unvote',
async: false,
contentType: 'application/json',
dataType: 'json',
data: JSON.stringify({'post_id':1}),
success: function(data, textStatus, jqXHR){
console.log(data);
console.log(textStatus);
console.log(jqXHR);
}.
error: function(jqXHR, textStatus, errorThrown){
// this block gets triggered with a 200 response
console.log(jqXHR);
console.log(textStatus);
console.log(errorThrown);
},
});
}
Run Code Online (Sandbox Code Playgroud)
PHP:投票控制器
public function unvote(){
$this->autoRender = false;
$vote = $this->Votes->newEntity();
if ( $this->request->is('ajax') ) {
$data = $this->request->input('json_decode');
$vote = // get the correct vote from the database and save into …Run Code Online (Sandbox Code Playgroud) 我有javascript警告出现,我希望每个警报在3秒后消失,但是我只能让他们一次消失,然后我不能再发出任何警报.
我也希望如果用户将鼠标悬停在警报上,则会重置3秒直到警报消失.
现在我正在使用该setTimeout功能,我99%肯定这是我的问题,我认为我需要重构一些东西以使用一些jquery延迟或其他等待功能,但我不确定如何做到这一点仍然得到我正在寻找的行为.
HTML看起来像这样:
<div id="site">
<div class="btn btn-danger">Red Alert!</div>
<div id="alerts" data-count="1">
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
JavaScript代码是:
$('.btn-danger').click(function(){
var count = $('#alerts').data('count');
var alert = '<div class="alert alert-danger" role="alert" data-dismiss="alert">' + count +'</div>';
var a = $('#alerts').append(alert)
setTimeout(function() { $(a).hide(); }, 3000);
count += 1;
$('#alerts').data('count', count);
});
Run Code Online (Sandbox Code Playgroud)
我在User模型中编写了几个占位符函数.我想让他们做的就是抛出NotImplementedException() CakePHP提供的东西.功能很好,很简单,我尝试了几种不同的方式.
public function canConvert() {
throw new NotImplementedException();
}
Run Code Online (Sandbox Code Playgroud)
错误:找不到类'App\Model\Entity\NotImplementedException'
public function canConvert() {
throw new \NotImplementedException();
}
Run Code Online (Sandbox Code Playgroud)
错误:找不到类'NotImplementedException'
我能找到这样做的唯一方法就是这样.
public function canConvert() {
throw new \Cake\Network\Exception\NotImplementedException();
}
Run Code Online (Sandbox Code Playgroud)
我试图做一个use Cake\Network\Exception;和顶部,只是抛出一个NotImplementedException()但是没有用.