Как в Laravel архитектурно правильно оформить метод, который вызывается и через action контроллера и через ajax?

Всем привет.
Подскажите, пожалуйста, по следующему вопросу:
Есть готовый проект в котором имеется action:
NewsController@makeRevision
Action помечает новости в БД для определенных нужд.
public function makeRevision(){
        $ids = $request->input('ids');
        $news = News::whereIn('id', $ids)->get();

         ... некая логика и заполнение БД ...

        Session::flash('status', 'Complete');
        return back();
}


Для этого экшена имеется путь для post-запроса: Route::post('/makerevision', 'NewsController@makerevision')->name('makerevision')
Вопрос: подскажите, к какому методу архитектурно правильно обратиться через ajax, чтобы выполнилась логика этого экшена? (т.е. куда ее можно вынести?)
Service layer в проекте отсутствует.
Для ajax-запроса нужно вернуть json-ответ, а не редирект назад и проставление статуса в сессию..

Заранее спасибо!
  • Вопрос задан
  • 132 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Result007
PHP Laravel
Как вариант проверять в контроллере на ajax запрос и возвращать json
if ($request->ajax()) {
    ...
 }
Ответ написан
@aleksejjjj
А в чём у вас разница с обычным POST запросом? Насколько я понимаю ее нет. Если так то проще всего в тот же метод контроллера добавить проверку на тип запроса:
public function makeRevision()
{
    // Тут ваша общая логика...

    // Если запрос аякс то возвращаете данные
    if ($request->ajax()) {
        // return response()->json()....
    }

    // Если не аякс то редирект обратно
    Session::flash('status', 'Complete');
    return back();
}
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
21 марта 2019, в 00:19
5000 руб./за проект
20 марта 2019, в 20:02
1000 руб./за проект