Hi everyone.
I got an error during file upload in laravel.
I want to just store the filename of an image inside the database on how I can achieve this.
error is:
"
ErrorException
Undefined variable: img
"
controller:
public function store(Request $request)
{
// dd($request);
if ($request->hasFile('image')) {
$img = $request->file('bookcover');
$extension = $img->getClientOriginalExtension();
Storage::disk('public')->put($img->getFilename() . '.' . $extension, File::get($img));
}
Business::create([
'name' => $request->name,
'asking_price_from' => $request->asking_price_from,
'asking_price_to' => $request->asking_price_to,
'description' => $request->description,
'image' => $img,
'user_id' => $request->input('user'),
'category_id' => $request->input('category'),
'subCategory_id' => $request->input('subCategory'),
'province_id' => $request->input('province'),
'city_id' => $request->input('city'),
]);
return redirect('sell-business-form');
form.blade.php
<form action="{{url('/business-store')}}" method="post" class="sell-business-form"
enc-type="multipart/form">
@csrf
<div class="form-group">
<label for="name">Name</label>
<input type="name" class="form-control" id="name" required />
</div>
<div class="form-group">
<label for="description">Description</label>
<textarea name="name" id="description" cols="30" rows="5" class="form-control"
required></textarea>
</div>
<div class="form-group">
<label for="a-price">Asking Price</label>
<input type="text" class="form-control" names="asking_price_from" id="a-aprice" required />
</div>
<div class="form-group">
<label for="price-t">Asking Price To</label>
<input type="text" class="form-control" names="asking_price_to" id="price-t" required />
</div>
<div class="form-control-inline my-5 d-flex">
{{-- Categories --}}
<div class="form-group">
<label for="cat">Category</label>
<select name="category" id="cat" class="form-control" required>
<option value="" selected disabled>select category</option>
@foreach ($categories as $category)
<option value="{{$category->id}}">{{$category->name}}</option>
@endforeach
</select>
</div>
{{-- sub categories --}}
<div class="form-group ml-5">
<label for="subcat">Sub Category</label>
<select name="subCategory" id="subcat" class="form-control" required>
<option value="" selected="false">select sub category</option>
</select>
</div>
</div>
<div class="form-control-inline my-5 d-flex ">
{{-- province --}}
<div class="form-group ">
<label for="province">Select Province</label>
<select id="province" name="province" class="form-control">
<option value="" selected disabled>Select Province</option>
@foreach ($provinces as $province)
<option value="{{$province->id}}">{{$province->name}}</option>
@endforeach
</select>
</div>
{{-- cities --}}
<div class="form-group ml-5 ">
<label for="city">Select Cities</label>
<select id="city" name="city" class="form-control">
<option value="" selected="false">City</option>
</select>
</div>
</div>
{{-- file/image --}}
<div class="form-group">
<input type="file" class="form-control border" name="image" required />
</div>
<input type="hidden" name="user" value="{{ Auth()->user()->id }}">
<button type="submit" class="button-primary float-right">
Post Business
</button>
</form>
is there any other way to achieve this.. i am doing this for testing purpose.
the error is in the image field..