@Aslero

Как сохранить данные из другого контроллера в Laravel?

при добавлении объявления в методе store(Request $request)

делаю проверку на авторизацию

if(!Auth::check()){
        Cookie::queue('ads_request',json_encode($request->input()), time() + 3600 * 24 * 30 * 365);
        return redirect()->route('login');
      }


если пользователь не авторизован, то данные формы добавляю в куки и отправляю пользователя на страницу входа

ппри авторизации, я пытаюсь вызвать метод store контроллера AdsController

$ads = new AdsController;
$ads->store(json_decode(Cookie::get('ads_request')));


но выкидывает ошибку

Type error: Argument 1 passed to App\Http\Controllers\AdsController::store() must be an instance of Illuminate\Http\Request, instance of stdClass given, called in /home/vagrant/projects/Laravel/mosdogs/app/Http/Controllers/Auth/LoginController.php on line 83


подскажите где ошибся или как правильно сделать
  • Вопрос задан
  • 70 просмотров
Пригласить эксперта
Ответы на вопрос 1
@megakor
PHP погроммист | Vue авантюрист | ru.sarvarov.dev
Не инициализируйте никогда классы контроллеры, они не для этого.
Вам нужно сделать отдельный класс - сервис и использовать его метод в обоих контроллерах. Ну, или, хотя-бы трейт.
Вызывать методы контроллера это плохо в большинстве случаев и должно говорить о том, что в вашем приложении что-то не так.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы