Я изо всех сил пытаюсь создать рабочие маршруты PUT в моем Lumen API. Мои запросы достигают правильного маршрута, но я не могу получить доступ к каким-либо значениям через $request->all()
.Получение данных PUT в Lumen
Я понял, что PHP должен прочитать поток php://input
, чтобы получить тело PUT. Это делается в функции getContent()
Symfony\Component\HttpFoundation\Request
. Однако эта функция вызывается несколько раз, и поскольку входной буфер очищается при чтении, данные отсутствуют, когда мне это нужно.
Я также обнаружил, что когда я устанавливаю заголовок Content-Type в text/plain, я могу успешно распечатать $request->json()
, но когда я установил его в application/json, объект пуст.
Любые идеи?
PS: Я знаю, что для запросов HTML вы должны добавить параметр _method, но поскольку я не выполняю свои запросы через HTML, параметр не нужен.
Edit:
Мой маршрут:
$app->put('settings', '[email protected]');
Мой контроллер:
class SettingController extends Controller
{
public function update(Request $request)
{
print_r($request->all());
}
}
Не могли бы вы показать свой код? –
Какая часть? В моих route.php: '$ api-> put ('settings', 'SettingController @ update');'. В методе обновления я просто делаю 'print_r ($ request-> all())', который пуст. Кстати, я использую пакет dingo. – Martijn
Покажите свой маршрут и контроллер, если вы его используете. –