【发布时间】:2019-06-17 04:01:43
【问题描述】:
您好,当我尝试在邮递员中更新图像时出现错误
我的控制器
$validator = Validator::make($request->all(), [
'category_id'=> 'required',
'product_name'=> 'required',
'product_description'=> 'required',
'product_img'=> 'required'
] );
if ($validator -> fails()) {
return $this->sendError('error validation', $validator->errors());
}
$product = Product::findOrFail($id) ;
$product->category_id = $request->input('category_id');
$product->subcat_id = $request->input('subcat_id');
$product->product_name = $request->input('product_name');
$product->product_description = $request->input('product_description');
$product->product_properties = $request->input('product_properties');
$product->product_img = $request->file('product_img')->store('images');
$product->product_pdf = $request->file('product_pdf')->store('files');
if($product->update()){
return $this->sendResponse($product->toArray() , 'Product Updated Succesfully');
}
我的邮递员行
"product_img":"Downloads/screencapture-file-C-Users-gkpro-Desktop-ui-Semantic-UI-master-examples-navbar-html-2019-01-03-20_31_47.png"
我收到这个错误
在 null 上调用成员函数 store()
【问题讨论】:
-
请向我们展示整个控制器。还要添加一个 dd($request->all());在您的更新中作为控制器的第一行并在此处添加结果
-
@Indra 我更新了我的控制器但 dd($request->all()) 返回空
-
@Indra 问题是我想在 postman 中使用 json 更新图像,而在 post 方法中我使用表单数据,但我不能通过 put 方法使用表单数据
-
从技术上讲,整个方法是错误的,因为图像应该单独处理,有一个单独的表、模型、控制器并存储在一个存储桶中,但是由于您这样做,您实际上无法上传图片。但是,您可以更改更新方法以使用 post 并且这将起作用,但这将是一个 hack。并且验证应该在一个单独的请求文件中完成。
标签: php json laravel api postman