Laravel 5.3 middleware

311
23 мая 2017, 04:42

Здравствуйте,у меня такой вопрос.Можно ли передать переменную из Middleware в Controller

Answer 1

В laravel 5.x вы можете использовать $request->merge для добавления параметров в Rquest,или изменить существующий $request->replace(array('inputname' => 'new value'));.

Если вы пытаетесь это сделать в Middleware то должны помнить что их бывает двух типов.

1.Ваш вариант это Before Middleware։

public function handle($request, Closure $next)
{
    //....
    $request->merge(array("input_name" => "input_value"));
    return $next($request);
}

И в контроллере:

public function index(Request $request)
{
    // ...
    $my_var1 = $request->input('input_name');
    // Так тоже можно получить добавленное значение
    $my_var2 = Request::instance()->query('input_name');
    // ...
}

2. After Middleware выполнит свою задачу после обработки Request:

public function handle(Request $request, Closure $next)
{
    $response = $next($request);
    // Request обрабатывается до этой строчки.
    // Поэтому делать что либо с Request уже бессмысленно
    $request->merge(array("input_name" => "input_value"));
    return $response;
}
READ ALSO
Как прописать регулярное выражение?

Как прописать регулярное выражение?

От 5 символов, можно использовать *-? и цифрыКак это прописать ? [A-Za-z0-9]{5,} как еще *-? дописать ?

263
php combinatoric

php combinatoric

Здравствуйте, нужна помощь в phpНашел такой код:

261
Что за ошибка phpStorm и как ее исправить?

Что за ошибка phpStorm и как ее исправить?

Начала выскакивать вот такая ошибка в phpStorm

228
Извлечение всех значений из redis

Извлечение всех значений из redis

Доброго времени! В редис можно вывести значение по ключу так:

299