ErrorException 类 Illuminate\Http\UploadedFile 的对象无法转换为 int

问题描述 投票:0回答:1

我的商店控制器代码如下。 imageaes 文件夹保存在公共文件夹和项目文件夹文件中。但无法转换为 int。 在实时数据库中图像保存为sample.jpeg,但它应该是像123456.sample.jpeg这样的代码

public function  store(Request $request)
{
    $this->validate($request,[
      'title'  => 'required',
      'image'  => 'required|image',

      'priority'  => 'required',
      'button_link'  => 'nullable|url',
    


    ],[  'title.required' =>"please provide a slider title",'priority.required' =>"please provide a slider priority ",
    'image.required' =>"please provide a slider image ",
    'image.image' =>"please provide a slider image ",

    'button_link.url' =>"please provide a slider button link ",
    
    

]);

    $slider = new Slider();
    $slider->title = $request->title ;
    $slider->image = $request->image ;
    $slider->buttone_text = $request->buttone_text ;
    $slider->button_link = $request->button_link ;
    $slider->priority = $request->priority ;
    if($request->image > 0){
    
         $image = $request->file('image');
        $img = time().'.'. $image->getClientOriginalName();
        $location = 'images/sliders/'.$img;

      Image::make($image)->save($location);
      $slider->image = $img;
        

}
 
$slider->save();


return back()->with('success','A new slider has addedd succesfully');

}

请澄清此代码的错误是什么。如果插入图像文件名,例如 123456.sample.jpeg 那么它就可以工作。 但如果我由网站管理员插入它,那么它无法正确存储图像信息。它存储sample.jpeg而不是123456.sample.jpeg。所以它捕获了一个错误 ErrorException 类 Illuminate\Http\UploadedFile 的对象无法转换为 int 那么这背后的问题是什么?

laravel controller
1个回答
0
投票

使用 Laravel 请求对象提供的

hasFile
方法代替
if($request->image > 0){

if($request->hasFile('image')) {
    $image = $request->file('image');
    $img = time() . '.' . $image->getClientOriginalName();
    $location = 'images/sliders/' . $img;
    Image::make($image)->save($location);
    $slider->image = $img;
}
© www.soinside.com 2019 - 2024. All rights reserved.