Reputation: 1333
In my Laravel-5.8, I have this code to filter reports by leave_type using dropdown
Controller:
$leavetypes = HrLeaveType::where('company_id', $userCompany)->pluck('leave_type_name','id');
if ($request->isMethod('post'))
{
$rules = [
'leavetype' => 'required|integer',
];
$this->validate($request, $rules);
$leave_type_id = $request->input('leave_type_id');
if ($request->has('search'))
{
// select search
$searchReports = DB::table('hr_leave_types AS lt')
->join('hr_leave_type_details AS ltd', 'lt.id', '=', 'ltd.leave_type_id')
->where('lt.id', $leave_type_id)
->select(
'lt.leave_type_name',
'lt.description',
'ltd.no_of_days',
)
->get();
return view('report.leavereport',['searchReports' => $searchReports]);
}
}
return view('report.leavereport', ['leavetypes' => $leavetypes]);
View Blade:
<form novalidate action="{{route('report.leavereport')}}" method="POST" enctype="multipart/form-data">
<select class="form-control select2bs4" data-placeholder="Select Leave Type" tabindex="1" name="leave_type_id">
<option value="">Select Leave Type</option>
@if($leavetypes->count() > 0 ) @foreach ($leavetypes as $ids => $name)
<option value="{{ $ids }}" {{ request( 'leave_type_id')==$ids ? 'selected' : ''}}>{{ $name }}</option>
@endforeach @endif
</select>
<button type="submit" class="btn btn-primary btn-sm" name="search" >Search</button>
</form>
From the code, I filter by leavetype
In my view blade, I want the select dropdown to have "ALL" so that I can also display all the records for all leave_types.
How do I achieve this in my view blade and controller?
Thanks
Upvotes: 0
Views: 55
Reputation: 2987
just pass $leavestypes
along with $searchReports
return view('report.leavereport',compact('leavetypes', 'searchReports');
Upvotes: 0