Используя Laravel 7, я пытаюсь настроить форму, где пользователь может редактировать свои данные и свое изображение. При попытке загрузить изображение в формате PNG или JPG появляется следующее сообщение об ошибке проверки:
The image must be an image.
Если я пытаюсь загрузить изображение, я получаю эту ошибку Call to a member function isvalid() on boolean
И если я удаляю проверку для изображения, я получаю FatalErrorException:
Вызов функции-члена getClientOriginalExtension () для логического
, который является вспомогательной функцией, предоставляемой библиотекой Intervention / Image. Это может означать, что изображение вообще не загружалось.
Это мой файл Blade
1. form role="form" id="updateDetailsForm" method="post" action="{{url('/admin/update-admin-details')}}" enctype="multipart/form-data">
<div class="card-body">
<div class="form-group" >
<label for="exampleInputEmail1">Admin Name</label>
<input type="text" class="form-control" name="admin_name" id="name" value="{{Auth::guard('admin')->user()->name}}" placeholder="Enter Email">
</div>
<div class="form-group">
<label for="exampleInputEmail1">Type</label>
<input type="text" class="form-control" name="type" id="type" readonly value="{{Auth::guard('admin')->user()->type}}" placeholder="Enter Email">
</div>
<div class="form-group">
<label for="exampleInputEmail1">Email address</label>
<input type="email" class="form-control" name="email" id="email" readonly value="{{Auth::guard('admin')->user()->email}}" placeholder="Enter Email">
</div>
<div class="form-group">
<label for="exampleInputEmail1">Mobile</label>
<input type="text" class="form-control" name="mobile" id="mobile" value="{{Auth::guard('admin')->user()->mobile}}" placeholder="Enter Email">
</div>
<div class="form-group">
<label for="exampleInputPassword1">Image</label>
<input type="file" class="form-control" name="admin_image" id="admin_image" accept="image/*" >
@if(!empty(Auth::guard('admin')->user()->image))
<a target="_blank" href="{{url('/images/admin_images/admin_photos/'.Auth::guard('admin')->user()->image)}}">View Image</a>
<input type="hidden" name="current_admin_image" value="{{Auth::guard('admin')->user()->image}}">
@endif
</div> ```
This is my Controller
```ADMIN CONTROLLER
public function updateAdminDetails(Request $request){
if($request->isMethod('post')){
$data= $request->all();
//echo "<pre>";print_r($data);die;
//Creating Validation
$rules =[
'admin_name'=>'required|string',
'mobile'=> 'required|numeric',
'admin_image'=> 'required|image|file',
];
$customMessage=[
'admin_name.required'=>'Name is Required',
'admin_name.alpha' => 'Valid Name is required',
'mobile.required'=>'Mobile is Required',
'mobile.numeric'=>'Valid Mobile is Required',
'admin_image.required'=>'Image is Required',
'admin_image.image'=>'Valid Image is Required',
];
$this->validate($request, $rules, $customMessage);
//Uploading Admin Image
// $imageName= '';
if($request->hasFile('admin_image')){
$image_tmp = $request->hasFile('admin_image');
if($image_tmp->isValid()){
//get extension
$extension = $image_tmp->getClientOriginalExtension();
//Generating image name
$imageName= rand(111,999999).'.'.$extension;
//Image Path
$imagePath= 'images/admin_images/admin_photos/'.$imageName;
//Uploading the image
Image::make($image_tmp)->save($imagePath);
}
} else{
$imageName="";
//return false;
}
$result=Admin::where('email', Auth::guard('admin')->user()->email)
->update(['name'=>$data['admin_name'], 'mobile'=>$data['mobile'], 'image'=>$imageName]);
//echo "<pre>";print_r($result);die;
//Session::flash('success_message', 'Details updated Successfully');
return redirect()->back();
}
return view('admin.admin_details');
}
Спасибо, боссы