【问题标题】:Laravel DB::table increment not working properlyLaravel DB::table 增量无法正常工作
【发布时间】:2014-08-15 01:28:36
【问题描述】:

我正在尝试在 javascript 中执行一条语句:

function giveRespect(username, postnumber){
   alert('username');
   alert('postnumber');
   $.post('respect', {username: username, postnumber: postnumber});
}

注意:第一个警报正确显示了用户名,例如:'Kori'。

注意:第二个警报正确显示了一个数值,例如:10。

这些例子可能很奇怪,但现在你知道数据是什么形式的了。

特此证明数据正确流入方法。

路线('/respect')

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')));
}

问题:

第一行正确执行,确实增加了尊重计数,

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

旁注

  • 表名是正确的,我检查过,重新检查过,再检查一次。 “用户”是第一个,“帖子”是第二个
  • 列名也是正确的。 “尊重”是应该增加的列

【问题讨论】:

    标签: javascript jquery post laravel increment


    【解决方案1】:

    我调试了一个小时,然后 在发布这个问题 5 分钟后,我明白了。对不起,伙计们,无法预测。

    回答

    声明

    DB::table('users')->increment('respect', 1, array('username' => Input::get('username')));

    没有达到我的预期。我希望第三个参数(数组)是 where() 方法参数,例如:increment where 'username' IS

    它的实际作用是什么?

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

    【讨论】:

    • 请务必尽快接受您自己的答案!
    猜你喜欢
    • 2020-10-08
    • 1970-01-01
    • 1970-01-01
    • 2021-06-12
    • 2013-03-08
    • 1970-01-01
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    相关资源
    最近更新 更多