Laravel DB :: table增量无法正常工作

时间:2014-08-15 01:28:36

标签: javascript jquery post laravel increment

我正在尝试在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')));
}

问题:

第一行正确执行,确实增加了敬意数,

然而,第二个没有正确执行,并且没有增加尊重计​​数。

图片的标题说明

  • 表名是正确的,我已经检查过,重新检查并再次检查。 '用户'是第一个'帖子'是第二个
  • 列名也是正确的。 '关于'是应该递增的列

1 个答案:

答案 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从数据库中检索对象,然后我增加尊重计​​数器