Laravel Запрос макроса со значениями c - PullRequest
0 голосов
/ 07 апреля 2020

Я пытался создать шаблон с отложенной загрузкой в ​​макросе запроса, который бы кэшировал значение в течение срока действия запроса.

Я поместил это в мою App\Providers\RouteServiceProvider boot() функцию:

Request::macro('foo', function() {
    static $bar;

    if (is_null($bar)) {
        $bar = 'was not null';
        return 'was null';
    }

    return $bar;
});

Каждый раз, когда я звоню request()->foo() или Request::foo(), он возвращает 'was null'.

Мой вопрос состоит из двух частей:

  1. Как я должен Совершено sh этот шаблон?
  2. Почему он не работает как написано?

1 Ответ

0 голосов
/ 14 апреля 2020

Я обнаружил, что могу выполнить sh шаблон следующим образом:

Request::macro('foo', function() {
    if (! isset(request()->bar)) {
        request()->bar = 'was not null';
        return 'was null';
    }

    return request()->bar;
});

Хотя я не нашел своего ответа на вопрос №2.

...