我在通过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));
但是当我尝试在同一个功能上使用其他雄辩的更新时,它不起作用。
答案 0 :(得分:1)
我遇到了这个问题,实际上只是因为你使用的是id而不是类。所以当ajax运行时,它只需要点击一个元素。它只关心你桌子的第一行。
不使用#
,而是使用.
将您的'#button-acept'
重命名为'.button-acept'
..在您的HTML中,将按钮更改为使用class=
代替id=
我希望我回答这个问题还为时不晚! 干杯!