Eloquent只通过ajax更新第一条记录

时间:2013-09-29 23:16:59

标签: laravel sql-update laravel-4 eloquent

我在通过ajax和eloquent更新时遇到了问题。

我在jquery中创建一个.ajax:

           $('#button-acept').on("click",function(event) {
            event.preventDefault()
            $.ajax({
                url: '{{ URL::to('/')}}/note_acept/{{$note->id}}',
                type: 'GET',
                dataType: 'json',
                success: function(data) {
                    console.log(data.message);
                    $('#alert-acepted').show();
                    $('.navbar-hide').hide();
                }
            });
        });

以及网址的操作:

public function acept_note($id){

    $note = Noticia::find($id);
    $note->acept = true;
    $note->save();
    return Response::json(array('message'=>"The note has been acepted"));

}

奇怪的是,当de note id为1时,它会正确更新acept字段,但如果音符有任何其他id(显而易见的话),它就不起作用。

我也尝试过使用查询构建器并且更新正确,但我也有一个关于为用户提供分数的问题。

这是有效的:

DB::table('notes')
        ->where('id', $id)
        ->update(array('acept' => true));

但是当我尝试在同一个功能上使用其他雄辩的更新时,它不起作用。

1 个答案:

答案 0 :(得分:1)

我遇到了这个问题,实际上只是因为你使用的是id而不是类。所以当ajax运行时,它只需要点击一个元素。它只关心你桌子的第一行。

不使用#,而是使用.

将您的'#button-acept'重命名为'.button-acept' ..在您的HTML中,将按钮更改为使用class=代替id=

我希望我回答这个问题还为时不晚! 干杯!