Это известная проблема, и предложенный обходной путь согласно следующему Github комментарий заключается в том, что при отправке запросов PATCH
/ PUT
необходимо выполнить следующие действия:
Вы должны отправить POST и установить для _method значение PUT (аналогично отправке форм), чтобы сделать ваши файлы видимыми
Таким образом, по сути вы отправляете запрос POST с параметром, который устанавливает фактический метод, и Laravel, кажется,понять это.
Согласно документации 1014 *:
Поскольку HTML-формы не могут выполнять PUT
, PATCH
или DELETE
запросов,вам нужно будет добавить скрытое поле _method
, чтобы подделать эти HTTP-глаголы.Директива @method
Blade может создать для вас это поле:
<form action="/foo/bar" method="POST">
@method('PUT')
...
</form>
В качестве альтернативы, вы можете использовать вспомогательную функцию method_field
, чтобы выполнить выше:
Функция method_field генерирует скрытое поле ввода HTML, содержащее поддельное значение HTTP-глагола формы.Например, используя синтаксис Blade:
<form method="POST">
{{ method_field('PUT') }}
</form>