Отправляю данные серверу для обновления с помощью метода PUT. Данные отправляю с помощью FormData. Данные отправляются, это видно в Chrome, но сервер не видет данные.
$request = $request->all()
С методом POST все работает нормально. Отправляю текстовые данные и файл
Как мне обновить данные? Переделывать роуты под метод POST?
UPD
В Controller я пока что, просто пытаюсь получить ответ от сервера
public function update(Request $request, $id)
{
$request = $request->all();
dd($request);
}
Этот способ работает, если отправлять данные в формате POST, то все нормально работает. Использую вместо vue-resource axios
save() {
var vm = this
var form = document.querySelector('form');
var formdata = new FormData(form)
axios[this.method](this.store, formdata)
.then(function (response) {
if (response.data.saved) {
vm.$router.push(vm.redirect)
}
})
.catch(function (error) {
console.log(error)
})
}
Кстати вот, если я напишу $reqyest->getContent(), то я получу данные в таком формате, но как их обрабатывать?
b"""
------WebKitFormBoundaryFEIpstOEw72VwaAe\r\n
Content-Disposition: form-data; name="name"\r\n
\r\n
Moscow\r\n
------WebKitFormBoundaryFEIpstOEw72VwaAe\r\n
Content-Disposition: form-data; name="cost"\r\n
\r\n
1.00\r\n
------WebKitFormBoundaryFEIpstOEw72VwaAe\r\n
Content-Disposition: form-data; name="picture"; filename="angel.png"\r\n
Content-Type: image/png\r\n
\r\n
...HIDEN...
------WebKitFormBoundaryFEIpstOEw72VwaAe\r\n
Content-Disposition: form-data; name="description"\r\n
\r\n
<p>1</p>\r\n
\r\n
------WebKitFormBoundaryFEIpstOEw72VwaAe--\r\n
"""
Итак имеем: данные FormData нужно отправить методом пост, но добавить в форму
<input name="_method" type="hidden" value="PUT">
или перед отправкой сделать так
formData = new FormData(form)
formData.append("_method", "PUT");
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости