javascript - Laravel 405(不允许的方法)
问题描述
我想实现一个类似的系统,但我不知道一旦用户点击了一个 a-tag 的 like 按钮,如何向 like 控制器发送请求。我创建了一个名为 LikeController 的新控制器,因为 ArticleController 已经有一个存储的 POST 方法。
这是控制器的 PHP 代码
use App\Article;
use App\Like;
use App\Events\NewLike;
class LikeController extends Controller
{
public function store(Request $request)
{
$id = $request['id'];
$article = Article::findOrFail($id);
$user_id = $request->user()->id;
$like = Like::where(['likeable_id' => $article->id, 'user_id' => $user_id]);
$like_type = $possibleLike->like_type;
// check if article exists
if(!$like) {
$like = new Like([
'user_id' => $user_id,
'like_type' => 'like',
'likeable_id' => $article->id,
'likeable_type' => 'article'
]);
} else {
if($like->like_type == 'like') {
$like->like_type == 'dislike';
} else if($like->like_type == 'dislike') {
$like->like_type == 'like';
}
}
$like->save();
event(new NewLike($like));
return redirect('/articles'.$article->id);
}
}
这是我在 vue 组件中用于发起请求的 Javascript:
export default {
props: ['articleId'],
methods: {
activateLike (articleId) {
axios({
type: 'POST',
url: '/likes',
headers: {
'X-CSRF-Token': $('meta[name=csrf-token]').attr('content')
},
id: articleId
}).then(response => {
console.log(response.data)
}).catch(function(error) {
console.log(error)
})
}
}
}
</script>
如果有人需要更多信息,我会在下面发布。
路线:
Route::get('/', 'PagesController@index');
Route::get('/about', 'PagesController@about');
Route::get('/leaderboard', 'PagesController@leaderboard');
Route::resource('articles', 'ArticlesController');
Route::get('article/{category}', 'ArticlesController@display');
Route::post('/likes', 'LikeController@store');
Auth::routes();
Route::get('/dashboard', 'DashboardController@index')->name('dashboard');
解决方案
推荐阅读
- javascript - 自定义图片上传适配器ckeditor 5
- node.js - Knex 迁移问题
- c++ - 使用C++,使用SFINAE测试静态成员是否存在,返回错误值
- android - 使用 Retrofit、RXJava 和 Kotlin 从服务器调用数据
- javascript - 在将 JSON 分配给类对象后,该类的本地函数已损坏
- groovy - 动态生成 GlobalVariable
- javascript - 如何区分 typescript 索引签名和 JS 计算属性名称
- routes - 如何在 TYPO3 9.5.5 中使用 html 获取口语 url 但不适用于 rootpage
- python - 问答:在类中定义 __getitem__ 方法或分配 __getitem__
- python - 如何在python中使用带有字符异常的多行DOTALL