laravel: перенаправление на тот же контроллер с параметрами запроса, если существует cook ie - PullRequest
0 голосов
/ 04 мая 2020

Во-первых, вот небольшая предыстория того, что я пытаюсь выполнить sh:

Я создаю приложение SaaS, и на маркетинговом сайте пользователь может выбрать план, который будет направлять их на страницу регистрации. Я использую процесс, очень похожий на Mailchimp.

После регистрации они должны подтвердить свою электронную почту. Подтвердив свой адрес электронной почты, они "заполняют" свою учетную запись такой информацией, как адрес, город и т. Д. c.

Затем они попадают в платный доступ.

My проблема

Мне нужен способ запомнить, какой план они хотели получить от маркетингового сайта, когда они попадают на платный доступ. Для этого я собирался установить повар ie.

Если повар ie имеет определенное значение, я хочу перенаправить на тот же маршрут, но добавить параметр запроса, например ?plan=free

Вот моя функция контроллера, привязанная к маршруту route('paywall')

/**
     * Returns all the data needed for the paywall
     */
    public function paywall() {

        if ($plan_intent = Cookie::get('plan-intent')) {
            return redirect()->route('paywall', ['plan' => $plan_intent]);
        }

        $account = auth()->user()->accounts->first();
        $billingAccount = $account->billingAccount;
        $contactDetails = $account->contactDetails();



        return view('account.paywall', [
            'plans' => Plan::all(),
            'intent' => $account->createSetupIntent(),
            'currentPlan' => $account->plan,
            'contactDetails' => $contactDetails,
            'billingAccount' => $billingAccount,
            'states' => State::all()
        ]);
    }

Приведенный выше код вызывает перенаправление l oop: (site name) redirected you too many times.

Как Могу ли я условно добавить параметры запроса к одному и тому же маршруту и ​​перенаправить на тот же маршрут?

1 Ответ

0 голосов
/ 04 мая 2020

Мне пришлось проверить, есть ли там параметр. Вот почему произошло перенаправление l oop:

if ($plan_intent = Cookie::get('plan-intent') && !request()->input('plan')) {
   return redirect()->route('paywall', ['plan' => $plan_intent]);
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...