每当我点击一个链接而不转到另一个页面时,我正在尝试更新或插入我的数据库表(user_shows)。所以,我使用ajax,下面是我的代码:
$("#fave").click(function(){
var url = $(this).attr("data-link");
var data = {
_token: $(this).data('token'),
id: $(this).attr("name")
};
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
url: "/addFavorites",
type:"post",
data: data,
success:function(data){
alert(data);
},error:function(){
alert("error!!!!");
}
}); //end of ajax
});
</script>
对于html:
<a id="fave" name="{{ $query[0]->tvSeriesID }}" href="#" data-link="{{ url('/addFavorites') }}" data-token="{{ csrf_token() }}" title="Mark this TV show a favorite!"><span class="glyphicon glyphicon-star" aria-hidden="true"></span> Favorites</a>
路线:
Route::post('/addFavorites', function() {
$id = Input::get('id');
$data = $id;
return $data;
});
输出:数据提取正确 enter image description here
但是当我在我的路线中放入一些代码时,我得到POST http://localhost:8000/addFavorites 500(内部服务器错误)
这是我的新路线代码
Route::post('/addFavorites', function() {
$id = Input::get('id');
$query = DB::table('user_shows')
->where('tvSeriesID', '=', $id)
->where('userID', '=', Auth::id())
->get(['favorite']);
if(empty($query))
{
//saving to DB
$faves = new UserShow;
$faves->tvSeriesID = $id;
$faves->userID = Auth::id();
$faves->favorite = 1;
$faves->save();
$data = "Show is added to Favorites";
return $data;
}
else
{
if($query[0]->favorite == 1) {
$data = "Show is already in Favorites";
}
else {
UserShow::where('tvSeriesID', $id)
->where('userID', Auth::id())
->update(['favorite' => 1]);
$data = "Show is added to Favorites";
}
$data = "Show is added to Favorites";
return $data;
}
});
我的编码错了吗?希望您能够帮助我。提前谢谢。
答案 0 :(得分:0)
我终于弄明白了为什么会出错。我没有包含我使用的模型的命名空间,即UserShow。当我添加命名空间时它起作用了! 这是我添加的行使用App \ UserShow; 。 非常感谢@Jay Blanchard的快速回复。