#laravel
#laravel
Вопрос:
У меня проблема при обновлении данных URLImg, когда я использую метод PUT, он выдает следующую ошибку в Postman’ErrorException: преобразование массива в строку в файле’, но если я использую метод POST, у меня не возникает проблем с загрузкой URL-адресов моих изображений.
public function store(Request $request)
{
$values = $request->except('URLImg');
$data = $request->only('URLImg[]');
if($request->hasFile('URLImg')){
foreach($request->file("URLImg") as $image)
{
$name = Str::random(10).'.'.$image->getClientOriginalExtension();
$path = 'storage/img/';
$image->move($path, $name);
$data[] = $name;
$tramite = Tramite::create($values);
$tramite->URLImg = json_encode($data);
$tramite->save();
}
}else{
$tramite = Tramite::create($values);
$tramite->save();
}
return response()->json($tramite, 201);
public function update(Request $request, Tramite $tramite)
{
$data = $request->only('URLImg[]');
if($request->hasFile('URLImg')){
foreach($request->file("URLImg") as $image)
{
$name = Str::random(10).'.'.$image->getClientOriginalExtension();
$path = 'storage/img/';
$image->move($path, $name);
$data[] = $name;
$tramite->URLImg = json_encode($data);
$tramite->save();
}
}
return response()->json($tramite, 201);
}
Конфигурация Postman
Конфигурация Postman
Да, это почти тот же код, но мне нужно только обновить поле URLImg
Комментарии:
1. В вашем сообщении об ошибке также указывается, какая именно строка кода вызывает проблему.
Ответ №1:
Хотите использовать запрос PUT или PATCH для формы, содержащей загружаемые файлы — отправьте запрос POST с подменой метода
<form action="/foo/bar" method="POST">
@method('PUT')
...
</form>
через любой фреймворк javascript, такой как vue
let data = new FormData;
data.append("_method", "PUT")
axios.post("some/url", data)
Использование _method
и установка для него значения ‘PUT’ или ‘PATCH’ позволит объявлять маршрут как маршрут PUT и по-прежнему использовать POST-запрос для отправки данных формы
$_FILES
не будет заполняться при запросе PUT или PATCH с ограничением multipart / form-data — PHP