У меня есть этот код Laravel -5.8, с помощью которого пользователи могут выполнять поиск с использованием различных полей управления для поиска кода сотрудника, назначения и отдела.
class HrEmployee extends Model
{
protected $table = 'hr_employees';
protected $primaryKey = 'id';
protected $fillable = [
'id',
'employee_code',
'address',
'email',
'employee_designation_id',
'first_name',
'emp_image',
'last_name',
'other_name',
'department_id',
];
protected $appends = ['full_name'];
public function user()
{
return $this->belongsTo('App\User');
}
public function designation()
{
return $this->belongsTo('App\Models\Hr\HrDesignation','employee_designation_id');
}
public function department()
{
return $this->belongsTo('App\Models\Hr\HrDepartment','department_id');
}
}
Контроллер
public function index(Request $request)
{
$userCompany = Auth::user()->company_id;
$render=[];
$employees = HrEmployee::where('company_id', $userCompany);
$employees=$employees->with('department','designation');
if(isset($request->employee_code))
{
$employees=$employees->where('employee_code','like','%'.$request->employee_code.'%');
$render['employee_code']=$request->employee_code;
}
if(isset($request->employee_designation_id))
{
$employees=$employees->where('employee_designation_id',$request->employee_designation_id);
$render['employee_designation_id']=$request->employee_designation_id;
}
if(isset($request->department_id))
{
$employees=$employees->where('department_id',$request->department_id);
$render['department_id']=$request->department_id;
}
$employees= $employees->paginate(6);
$employees= $employees->appends($render);
$data['employees'] = $employees;
$data['departments']= HrDepartment::where('company_id', $userCompany)->pluck('dept_name','id');
$data['designations']= HrDesignation::where('company_id', $userCompany)->pluck('designation_name','id');
return view('hr.employees.index',$data);
}
просмотр
{{ Form::model(request(),['method'=>'get']) }}
<div class="row" style="margin-bottom: 10px">
<div orm-group class="col-sm-3">
{{Form::label('employee_code', 'Employee No.')}}
{{ Form::text('employee_code',null,['class'=>'form-control','placeholder'=>'Employee Code']) }}
</div>
<div class="col-sm-4">
{{Form::label('department_id', 'Department')}}
{{ Form::select('department_id',$departments,null,['class'=>'form-control select2bs4','placeholder'=>'Select Department']) }}
</div>
<div class="col-sm-4">
{{Form::label('employee_designation_id', 'Designation')}}
{{ Form::select('employee_designation_id',$designations,null,['class'=>'form-control select2bs4','placeholder'=>'Select Designation']) }}
</div>
<div class="col-xs-3">
<br>
{{ Form::submit('Search',['class'=>'btn btn-warning']) }}
</div>
{{ Form::close() }}
</div>
<br>
<!-- Default box -->
<div class="card card-solid">
<div class="card-body pb-0">
<div class="row d-flex align-items-stretch">
@if (count($employees))
@foreach($employees as $key => $employee)
<div class="col-12 col-sm-6 col-md-4 d-flex align-items-stretch">
<div class="card bg-light">
<div class="card-header text-muted border-bottom-0">
{{isset($employee->designation) ? $employee->designation->designation_name : ''}}
</div>
<div class="card-body pt-0">
<div class="row">
<div class="col-7">
<h2 class="lead"><b>Staff ID: {{$employee->employee_code}}</b></h2>
<h2 class="lead"><b>{{$employee->first_name}} {{$employee->last_name}}</b></h2>
<h6 class="lead"><b>Employee Department: </b>{{isset($employee->department) ? $employee->department->dept_name : ''}}</h6>
<h6 class="lead"><b>Employment Date: </b>{{$employee->employment_date ? Carbon\Carbon::parse($employee->employment_date)->format('d-m-Y') : 'N/A' }}</h6>
<ul class="ml-4 mb-0 fa-ul text-muted">
<li class="small"><span class="fa-li"><i class="fas fa-lg fa-envelope"></i></span> Email: {{$employee->email}}</li>
<li class="small"><span class="fa-li"><i class="fas fa-lg fa-phone"></i></span> Phone #: {{isset($employee->phone) ? $employee->phone : 'N/A'}}</li>
</ul>
</div>
<div class="col-5 text-center">
@if($employee->emp_image != '')
<img src="{{ URL::to('/') }}/public/storage/employees/image/{{ $employee->emp_image }}" class="img-circle img-fluid" />
@else
<img class="profile-user-img img-fluid img-circle" src="{{asset('theme/adminlte3/dist/img/default.png')}}" alt="" class="img-circle img-fluid">
@endif
</div>
</div>
</div>
<div class="card-footer">
<div class="text-right">
@can('employee_show')
<a href="{{ route('hr.employees.show', ['id'=>$employee->id]) }}" class="btn btn-sm btn-primary">
<i class="fas fa-user"></i> View Detail
</a>
@endcan
</div>
</div>
</div>
</div>
@endforeach
@else
<h4 style="text-align:center;">No matching records found</h4>
@endif
</div>
</div>
<!-- /.card-body -->
<div class="card-footer align-items-center d-flex justify-content-center">
{{ $employees->links() }}
<!-- /.card-footer -->
</div>
<!-- /.card -->
</div>
Вместо того, чтобы искать каждое поле одно за другим, используя разные поля управления. Как использовать отдельное текстовое поле для поиска кода сотрудника, имени, фамилии, отдела и назначения?
Спасибо