Я пытаюсь сделать счетчик просмотров для моей страницы курса, используя Ajax, но похоже, что он не работает
это скрытая форма
<form style="display:none;" method="POST" action="{{route('view_counter',$courses->id)}}">
@csrf
@method('PUT')
<input type="text" id="postVisitCount" name="visitCount" value="{{$courses->visit_count}}">
<input value="send" type="submit">
</form>
это ajax code
<script>
let visitCount=document.getElementById('postVisitCount').value;
let visitCountPlusOne=parseInt(visitCount)+1;
document.getElementById('postVisitCount').value=visitCountPlusOne;
let $formVar=$('form');
$.ajax({
url: $formVar.prop('{{route('view_counter',$courses->id)}}'),
method: 'PUT',
data: $formVar.serialize(),
});
это маршрут для курса
Route::namespace('course')->prefix('/courses')->group(function()
{
Route::get('/','CoursesController@index')->name('all_courses');
Route::post('/comment','CommentsController@store')->name('comment');
Route::post('/answer','QuizesController@store')->name('answer');
Route::put('/view/{put}','CoursesController@update')->name('view_counter'); // THIS PAGE GETS SOME INFORMATION USING AJAX
Route::prefix('/{course:slug}')->group(function()
{
Route::get('/','CoursesController@view')->name('view'); // AJAX CODE IS IN THIS FILE
Route::get('/quiz/{quiz:slug}','QuizesController@quiz')->name('quiz_view');
Route::get('/{lesson:slug}','LessonsController@lesson')->name('action');
});
});
это функция обновления
public function update(Request $request, $id)
{
$course=Course::find($id);
$course->visit_count=$request->input('visitCount');
$course->save();
return back();
}
Ошибки, которые я получаю:
Request URL: http://127.0.0.1:8000/courses/beginner
Request Method: PUT
Status Code: 405 Method Not Allowed
Remote Address: 127.0.0.1:8000
Referrer Policy: no-referrer-when-downgrade
Когда я пытаюсь это сделать, я получаю ошибку: метод установки запрещен !. Я действительно застрял в этом какое-то время.