【发布时间】:2020-05-16 05:21:42
【问题描述】:
对此非常不确定,我无法找到与我通过搜索获得的特定问题相关的任何结果。
我有一个 Laravel 项目,可以在其中发布 cmets,然后人们可以喜欢 cmets。点赞的DB表有点赞ID、用户ID和评论ID。
ViewComment.vue - removeLike 方法运行如果他们已经喜欢评论并点击喜欢按钮。
removeLike(){
if(this.user){
axios.delete('/api/likes/' + this.comment.likes[0].id).then((response) => {
this.comment = response.data;
}, (response) => {
this.error = response;
});
}else{
window.location.replace('/' + i18n.locale + '/login');
}
}
api.php - 点赞路线
Route::bind('like', function($value) {
return \App\Like::where('user_id', Auth::id() ?? 0 )->find($value);
});
Route::group(['middleware' => ['auth']], function($router) {
Route::post('likes', 'LikesController@store');
Route::delete('likes/{', 'LikesController@remove');
Route::delete('likes/{like}', 'LikesController@remove');
});
LikesController.php
public function remove(Like $like)
{
$like->delete();
}
错误信息:
当我在我的本地服务器上运行项目时,喜欢然后取消喜欢评论工作完全正常,没有错误,当它上线时,它却出现 405 错误,我查了一下,发现这意味着它与路由不兼容,但我不明白当它在本地工作时会出现这种情况,当然它也会出现在本地,并且删除在评论视图文件中并且作为 api.php 中的路由存在.如果这是由于托管方式存在问题,我该如何改进项目以与托管一起使用,或者如果在托管时有特定需求以使其正常工作,请告诉我。任何帮助将非常感激。
【问题讨论】:
-
Route::delete('likes/{',是带有单个花括号的有效路由吗?我在文档中找不到它。尝试注释掉该行。 -
现在我想起来了,您正在使用
auth中间件,所以它可能会失败,因为您缺少 CSRF 令牌。 -
我认为它必须是有效的,因为它确实有效,因为当我在本地服务器上运行它时它确实有效,我如何找到 CSRF 令牌?
-
不幸的是,评论似乎并不能解决问题