В Laravel можно передавать данные из middleware в контроллер с помощью объекта Request
. Для этого можно использовать метод merge()
объекта Request
, который добавляет данные в массив request
текущего объекта Request
.
Пример:
1. Создайте middleware:
<?php
namespace App\Http\Middleware;
use Closure;
class MyMiddleware
{
public function handle($request, Closure $next)
{
// Добавляем данные в request
$request->merge(['foo' => 'bar']);
return $next($request);
}
}
2. Зарегистрируйте middleware в файле app/Http/Kernel.php
:
protected $middleware = [
// ...
\App\Http\Middleware\MyMiddleware::class,
];
3. В контроллере вы можете получить данные из Request
:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class MyController extends Controller
{
public function myAction(Request $request)
{
$foo = $request->input('foo'); // 'bar'
// ...
}
}
Теперь при вызове метода myAction
в контроллере, в $foo
будет передано значение 'bar'
, которое было добавлено в middleware.
Я даю согласие на сбор и обработку моих персональных данных. Политика конфиденциальности