Неопределенная переменная: image_name Laravel 5.4 - PullRequest
0 голосов
/ 11 июля 2019

Я хочу загрузить и отобразить изображение, но я получаю ошибку Неопределенная переменная: image_name

Это мой контроллер

$supply = new DataSupplyProcess;
    if($request->hasFile('supply_photo')){
            $photo = Validator::make($request->all(), [
                'supply_photo' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
        ]);
    if($photo->fails()){
                return redirect()->back()->with('warning', 'Image size should be 2MB or less');
        }            
        $image = $request->file('supply_photo');
        $image_name = rand().'.'. $image->getClientOriginalExtension();
        $destination_path = public_path('/item');
        $image->move($destination_path, $image_name);
        //dd($image);

    }
        $supply->item = $request->item;
        $supply->supply_details = $request->supply_details;
        $supply->tgl_request_date = $request->tgl_need_date;
        $supply->tgl_need_date = $request->tgl_need_date;
        $supply->employee_id = $id;
        $supply->id_approved_by = $manager->employee_manager_id;
        $supply->is_approved = 0;
        $supply->is_final_approved = 0;
        $supply->supply_photo = $image_name;
        $supply->save();

Это мой взгляд

  <label for="supply_photo">Photo</label>
        <form action="" method="post" enctype="multipart/form-data">
          <input type="file" class="form-control" name="supply_photo">

Ответы [ 3 ]

0 голосов
/ 11 июля 2019

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

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

dd($image = $request->file('supply_photo'));

$image_name = NULL;

if($request->hasFile('supply_photo')){

        $image = $request->file('supply_photo');
        $image_name = rand().'.'. $image->getClientOriginalExtension();
        $destination_path = public_path('/item');
        $image->move($destination_path, $image_name);

}

$supply->supply_photo = $image_name;
$supply->save();
0 голосов
/ 11 июля 2019
$supply = new DataSupplyProcess;

if($request->hasFile('supply_photo')){
        $photo = Validator::make($request->all(), [
            'supply_photo' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
        ]);

         if($photo->fails()){
            return redirect()->back()->with('warning', 'Image size should be 2MB or less');
         }  

         //$original_name=$request->file('supply_photo')->getClientOriginalName();
         //$size=$request->file('supply_photo')->getSize();
         $extension=$request->file('supply_photo')->getClientOriginalExtension();
         $filename=uniqid().'.'.$extension;
         $imagepath=url('/item/'.$filename);
         $path=$request->file('supply_photo')->storeAs(public_path('/item'),$filename);



}
0 голосов
/ 11 июля 2019

В вашем контроллере попробуйте что-то вроде:

if(Input::file('supply_photo') !== null){
    $photo = Validator::make($request->all(), [
        'supply_photo' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
    ]);
    ...
}

Я думаю, этот пост может предоставить больше информации

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