Какой шаблон проектирования помогает мне в этом случае, используя — Laravel

#laravel #oop

#laravel #ооп

Вопрос:

итак, у меня есть контроллер, который возвращает представление с коллекцией БД, которая у меня есть в репозитории,

теперь, если у меня есть запрос, я хочу вернуть array — json, а не представление

есть идеи, если это правильный подход?

     public function index(
    Request $request,
    CampaignPerformanceRepository $campaignPerformanceRepository
) {
    $data = $campaignPerformanceRepository->getDataByPeriod($request);

    if ($request->all()) {
        return $campaignPerformanceRepository->getDataByPeriod($request);
    }

    return view('reports.campaign-performances', compact('data'));
}
  

Ответ №1:

Я делаю что-то подобное в тех случаях, когда я могу захотеть вернуть представление или просто json на основе запроса. Есть простая вспомогательная функция request()-> wantsJson(), которую вы можете использовать.

 $data = $campaignPerformanceRepository->getDataByPeriod($request);

if ($request->wantsJson()) {
    return $campaignPerformanceRepository->getDataByPeriod($request);
}

return view('reports.campaign-performances', compact('data'));