Как в 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-ответ, а не редирект назад и проставление статуса в сессию..

Заранее спасибо!
  • Вопрос задан
  • 87 просмотров
Пригласить эксперта
Ответы на вопрос 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();
}
Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
OS33 Нижний Новгород
от 120 000 до 150 000 руб.
от 80 000 до 100 000 руб.
Amigoweb Магнитогорск
от 50 000 до 70 000 руб.