Как создать переменную в Laravel в классе чтоб она была видна внутри функций этого класса?
Имеется код в контроллере Laravel, которая использует функции хелпера, в котором используется фасад Request:
public static $regions, $current_region;
public function __construct()
{
$regions = RegionInfo::get_region($request)[0];
$current_region = RegionInfo::get_region($request)[1];
}
Однако, она выдаёт ошибку Undefined variable $request.
В общем, как создать переменные $regions, $current_region так, чтобы они были видны другим функциям контроллера?
Ответы (1 шт):
Для доступа к статическим переменным внутри класса используйте ключевое слово self
self::$regions = RegionInfo::get_region($request)[0];
self::$current_region = RegionInfo::get_region($request)[1];
Но у вас проблема в том, что класс не знает что такое $request, о чем явно говорит ошибка. Откуда у вас берется $request ?
Во-вторых, точно ли нужны вам статические значения свойств класса? Если вы их динамически меняете при каждом создании экземпляра класса, то лучше их сделать динамическими. Например так:
public $region;
public $current_region;
public fucntion __construct(Requets $request)
{
$this->region = RegionInfo::get_region($request)[0];
$this->current_region = RegionInfo::get_region($request)[1];
}
Не экономьте стрчоки в коде. Используйте статику только там, где она действительно нужна.