Lumen $ request-> input () возвращает пустое значение в промежуточном программном обеспечении - PullRequest
1 голос
/ 21 марта 2019

Я создаю RESTful-сервер в Lumen, но $request->input("something") и даже $request->all() всегда возвращают пустой массив или ноль, когда я передаю ему параметры запроса. Итак, вопрос в том, что я делаю неправильно и как получить параметры через $ request-> input () или $ request-> all ()?

маршруты / web.php

<?php

use Illuminate\Support\Facades\Input;
use Illuminate\Http\Request;

$router->group(['prefix' => 'accounts/{old}'], function () use ($router) {
    $router->get('register', function ($old)    {
        return 'You are OK! More than 18! '.$old.' years';
    });
});

Приложение / Http / Промежуточное / OldMiddleware.php

<?php

namespace App\Http\Middleware;

use Closure;

class OldMiddleware
{
    /**
     * Check user old and if it was less than 18 return something and else continue.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if ($request->input('old') < 18) { 
            return "You are under 18!";
        }
        return $next($request);
    }
}

bootstap / app.php

$app->middleware([
    App\Http\Middleware\OldMiddleware::class
]);

Пример запроса:

curl http://server.loc/accounts/20/register

В OldMiddleware.php $ request-> input () возвращает значение null, и я не могу получить доступ к старому переданному значению в промежуточном программном обеспечении (для проверки возраста пользователя)

1 Ответ

0 голосов
/ 21 марта 2019

Я нашел решение.Этот способ выглядит сумасшедшим!

$request->route('old');

Не забудьте импортировать запросы (во 2-й строке после тега php start):

use Illuminate\Http\Request;
...