我正在尝试在javascript中执行语句:
function giveRespect(username, postnumber){
alert('username');
alert('postnumber');
$.post('respect', {username: username, postnumber: postnumber});
}
注意:第一个提醒正确显示了用户名,例如:' Kori'
注意:第二个警报正确显示数值,例如:10。
这些例子可能很奇怪,但现在你知道数据的形式是什么。
特此证明数据正确地流入该方法。
路线(' /尊重')
Route::post('/respect', 'PostController@giveRespect');
这条路线并且过去曾有效。调用giveRespect javascript函数时调用giveRespect方法。事实证明这是因为正在执行数据库增量语句并且实际上增加了数字。
PostController中的giveRespect方法
public function giveRespect(){
DB::table('users')->increment('respect', 1, array('username' => Input::get('username')));
DB::table('post')->increment('respect', 1, array('id' => Input::get('postnumber')));
}
问题:
第一行正确执行,确实增加了敬意数,
然而,第二个没有正确执行,并且没有增加尊重计数。
图片的标题说明
答案 0 :(得分:1)
我调试了一个小时 在发布这个问题后5分钟,我得到了它...对不起,伙计们,无法预测。
<强>答案强>
声明
DB :: table(&#39;用户&#39;) - &gt;增量(&#39;尊重&#39;,1,数组(&#39;用户名&#39; =&gt;输入::获取(&#39;用户名&#39;)));
不符合我的预期。我希望第三个参数(数组)是一个where()方法参数,如:increment where&#39; username&#39; IS&lt;用户名&gt;
实际上做了什么?
increment方法中的第三个参数允许您指定一个也将与增量更改一起更新的列。方便,但不是我的情况
我是如何达到预期效果的?
public function giveRespect(){
$user = user::where('username','=', Input::get('username'))->first();
$user->increment('respect', 1);
$post = post::where('id', '=', Input::get('postnumber'))->first();
$post->increment('respect', 1);
}
我首先使用where语句结合Eloquent从数据库中检索对象,然后我增加尊重计数器