Я хочу обновить изображение, используя laravel - PullRequest
0 голосов
/ 26 февраля 2020

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

Контроллер

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

    $this->validate($request, [
        'select_image'  => 'required'
    ]);
    $image = $request->file('select_image');
    $extension = $image->getClientOriginalExtension();
    Storage::disk('cms')->put(
        $image->getFilename() . '.' . $extension,
        File::get($image)
    );
    $content = new Sliders;
    if ($request->file('select_image')) {
        $content->slider_image = $image->getFilename() . '.' . $extension;;
        $updaterecord = sliders::where(['id' => $content->id])->update(['slider_image' =>
        $content]);
        return back()->with('success', 'Image Updated Successfully')->with('path', $updaterecord);
    }
}

HTML просмотр

      <form   method="post" action=" 
      {{route('update.action',$myslider->id)}}" 
       enctype="multipart/form-data"    >
       @csrf
       <div class="row">
       <div class="col-12">
       <div class="card">
       <div class="card-body">
       <h4 class="header-title">Image Upload</h4>
       <input type="file" name="select_image" value=" 
      {{config('e_soft.file_url').$myslider->slider_image}}"   
      class="dropify" data-height="300" />
       </div> <!-- end card-body-->
       </div> <!-- end card-->
        <div class="page-title-right">
        <button   type="submit"  id="update"   class="btn btn-danger 
        waves-effect waves-light col-lg-1">Update</button>
        </div>
        </div>
        <!-- end row --> 
        </form>   

1 Ответ

0 голосов
/ 26 февраля 2020

Хорошо, поэтому я думаю, что ваша проблема в том, что вы хотите установить значение по умолчанию для <input type="file">, что невозможно. по соображениям безопасности вы не можете установить значение по умолчанию для <input type="file">, поэтому в вашем случае вы можете проверить, есть ли новый файл изображения, вы поместите новый, в противном случае вы просто переназначаете предыдущее изображение слайдера, вот пример:

$slider = Sliders::findOrFail($id);

if (! empty($request->file('select_image'))) {
    $content->slider_image = $image->getFilename().'.'.$extension;;
} else {
    $content->slider_image = $slider->slider_image;
}

Итак, как вы можете видеть сначала, мы проверяем, существует ли новый файл, если так, мы назначаем новый файл, в противном случае мы используем старый.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...