@runprogr

Как правильно использовать laravel + ajax?

На примере форума. Нам надо реализовать функционал лайков/дизлайков к постам. Соответственно нужно чтобы при нажатии на кнопку лайк не перезагружалась страница, а происходил ajax - запрос. (Весь остальной функционал сайта работает без ajax)

Вопросы
1) Какой роут правильнее использовать для такого запроса ? web или api ?
2) На какой контроллер должен ссылаться роут ? На обычный, или следует создать какой то специальный контроллер для ajax запросов ?
3) Сама логика лайков. При нажатии на кнопку лайк мы передаем в json формате id поста и id юзера -> (записываем строчку в БД) -> возвращаем обратно в json формате общее кол-во лайков поста. При повторном нажатии операция повторяется, только строчка не добавляется, а удаляется из БД. Все верно ?
  • Вопрос задан
  • 173 просмотра
Решения вопроса 1
@khariv2907
1. Если уж выбирать, то лучше web
2. Отдельный контроллер не нужен. Я создаю в нужном мне контроллере новый action с окончанием "function ***Ajax()". Также добавь middleware который будет проверять это ли Ajax запрос (Request::ajax())
3. Да, лучше удалять с БД соответствующая запись, так как нет смысла сохранять статусы и тд
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@andreysuha
Что то знаю
1. Без разницы
2. Без разницы
3. Вам виднее
Ответ написан
Комментировать
Kulaxyz
@Kulaxyz
Могу лучше
Всё верно описали, можете смело делать. Разницы между web и api не будет. А с контроллерами дело вкуса, я бы в контроллере постов делал, чтобы ajax контроллер не превратился в мусорку, при появлении других запросов не связанных с постами.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы