Я создаю счетчик просмотров в laravel, поэтому в данном случае я создал небольшие карточки для внесения в список клиентов, если при нажатии кнопки «просмотр» карта развернется и также будет считаться представлением.
Я использовал Buefy во внешнем интерфейсе, поэтому карта расширяется всякий раз, когда я нажимаю на представление, я также добавляю событие onclick и передаю текущий идентификатор пользователя конкретной карты, после щелчка она вызовет функцию AJAX, которая будет увеличиваться на +1 в столбце view_counter.
Но Ajax не передает идентификатор контроллеру, я пробовал оповещение, которое работает нормально, это означает, что мой синтаксис неправильный.
Вот мой взгляд: network.blade.php
<button
onclick='viewUpdate("{{$user->id}}")'
class="button is-primary"
slot="trigger"
aria-controls="contentIdForA11y1"
>
View!
</button>
Мой Ajax-скрипт:
<script>
function viewUpdate(val)
{
//alert(val);
jQuery.ajax({
url: "{{ url('dne/viewincrement') }}",
method: 'post',
data: {
'id': val
},
success: function(result){
console.log('success');
}
});
}
</script>
Насколько мне известно, когда кто-то нажимает кнопку, он отправляет идентификатор пользователя этой карты и в сценарии, который будет храниться в viewUpdate (val), теперь я передаю это значение Id контроллеру.
Это мой маршрут:
Route::prefix('dne')->group(function() {
Route::post('/viewincrement', 'DNE\DNEFrontController@count');
}
а это мой контроллер: DNEFrontController.php
public function count(Request $request)
{
//dd($request);
$user = DNEUser::findOrFail($id);
if(isset($user) && !empty($user)){
$user->view_counter+=1;
$user->save();
}
//$this->addData('user', $user);
return $this->getView('dne.customer.pizza');
}
view_counter - это мой столбец, который по умолчанию равен 0, он будет увеличиваться на +1.
Текущая ситуация: кнопка работает и вызывается Ajax, он показывает значение id в оповещении, но в консоли выдает:
POST http://localhost:8000/dne/viewincrement 419 (неизвестный статус)