В yoyo.php
:Laravel: Разрешение объектов из IoC контейнер
class Yoyo {
public $data;
}
В global.php
:
App::singleton('yoyo', function()
{
return new Yoyo;
});
В filters.php
:
$a= App::make('yoyo');
$a->data = 'yep';
В контроллере:
public function doSomething() {
dd(App::make('yoyo'));
}
В filters.php
, я могу получить доступ к собственности data
и имеет ожидаемое значение.
В контроллере помощник dd
показывает, что data
является null
.
Фильтр выполняется до вызова метода контроллера.
Почему именно $data
null
?
Я определил, что если я инициализирую $ data в классе, то это значение показывает вместо null. Поэтому я получаю новый экземпляр класса. Должен ли класс быть написан как синглтон или laravel заботится об этом для меня? – user44021
Хорошо полная ошибка с моей стороны. Было перенаправление, поэтому контроллер фактически действовал по новому запросу, который не инициализировал yoyo. – user44021