首页 > 解决方案 > 在 null 上调用成员函数 getCLientOriginalExtension() 使用 laravel

问题描述

我正在尝试仅更新输入字段文本,但不想在我在按钮上提交时更新图像,不幸的是,我遇到了错误如何解决它,请帮助我,谢谢。

请检查错误https://flareapp.io/share/v5pQ6xmE#F44

控制器

                     public function updateoffer(Request $request,$id)
                     {

                      $offer_name=$request->get('offername');
                      $image=$request->file('offer_image');
                      $extension=$image->getCLientOriginalExtension();
                      Storage::disk('cms')->put($image- 
                      >getFileName().'.'.$extension,File::get($image));
                      $content = new Offers();
                      $content->image=$image->getFilename() . '.' . $extension;
                      $check=Offers::where('id',$id)- 
                      >update(['offer_name'=>$offer_name,'offer_image'=>$content->image]);
                      return back()->with('success','Successfully Updated',$check);
                       }

标签: laravel

解决方案


您的 HTML 表单中的文件选项似乎是可选的。hasFile因此,您可以在 Laravel中检查文件是否存在。

<?php

public function updateoffer(Request $request,$id){
  $offer_name = $request->get('offername');

  if($request->hasFile('offer_image')){
    $image = $request->file('offer_image');
    $extension = $image->getCLientOriginalExtension();
    Storage::disk('cms')->put($image->getFileName().'.'.$extension,File::get($image));
    $content = new Offers();
    $content->image=$image->getFilename() . '.' . $extension;
    $check = Offers::where('id',$id)->update(['offer_name'=>$offer_name,'offer_image'=>$content->image]);
  }else{
    $check = Offers::where('id',$id)->update(['offer_name'=>$offer_name]);
  }


  return back()->with('success','Successfully Updated',$check);
}

推荐阅读