Вызов функции-члена getCLientOriginalExtension () при нулевом использовании laravel - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь обновить только текст в поле ввода, но не хочу обновлять изображение при отправке на кнопку. К сожалению, я сталкиваюсь с ошибкой, как это исправить. Пожалуйста, помогите мне.

пожалуйста ошибка проверки 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);
                       }

Ответы [ 2 ]

1 голос
/ 09 марта 2020

Вам нужно проверить, есть изображение или нет

public function updateoffer(Request $request,$id)
{
 // Create New Intance For Update
 $content = new Offers();

 // Get Name
 $offer_name=$request->get('offername');

 // Get Image If It Exists
 if ($request->hasFile('offer_image')) {

  $image=$request->file('offer_image');

  $extension=$image->getCLientOriginalExtension();

  Storage::disk('cms')->put($image->getFileName().'.'.$extension,File::get($image));

  $content->image=$image->getFilename() . '.' . $extension;
  } else {
   $content->image = null;
   // if database not accept null you can send empty ''
   // $content->image = ''; 
  }

 $check=Offers::where('id',$id)->update([
  'offer_name'=>$offer_name,
  'offer_image'=>$content->image
 ]);

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

}

Надеюсь, это поможет:)

1 голос
/ 09 марта 2020

Кажется, что ваш параметр файла в форме 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...