Как получить доступ до свойства класа? class ProviderController extends Controller { public $previousUrl; public function redirect($driver) { $this->previousUrl = url()->previous(); } public function callback($provider) { dd($this->previousUrl); } } В ответе NULL а если поставить dd в методе redirect то значение есть, как так?

20 Авг 2023 в 19:53
130 +1
0
Ответы
1

В предоставленном коде класса ProviderController, свойство $previousUrl инициализируется внутри метода redirect(). Однако, когда в методе callback() выводится это свойство с помощью dd($this->previousUrl), оно выдает значение NULL.

Причина этого может быть связана с жизненным циклом объекта ProviderController. Если каждый раз при выполнении метода callback() создается новый экземпляр ProviderController, то это означает, что свойство $previousUrl будет снова инициализировано при каждом новом запросе.

Если вы хотите сохранить значение $previousUrl между запросами, вы можете воспользоваться сессиями или базой данных, чтобы сохранить и извлечь это значение. Например, вы можете использовать сессии Laravel:

public function redirect($driver) {

  session()->put('previousUrl', url()->previous());

}

public function callback($provider) {

  $previousUrl = session()->get('previousUrl');

  dd($previousUrl);

}

Теперь значение $previousUrl будет сохранено в сессии между запросами и должно быть доступно в методе callback. Убедитесь, что у вас настроена конфигурация сессии в Laravel, чтобы это функционировало правильно.

Если вы все равно получаете NULL, убедитесь, что значение $previousUrl сохраняется в сессию и правильно извлекается.

4 Сен 2023 в 20:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир