I want to make a search function of user name and shift pattern id. Search by user shift pattern id works well but not for search by name. For more information, the name is inside the user table while shift pattern id is inside the user shift pattern table.
UserShiftPattern model:-
public function uspname(){
return $this->belongsTo(User::class, 'user_id');
}
UserShiftPatternController:-
public function index(Request $req)
{
$usershiftpattern = [];
if($req->filled('searching')){
$usershiftpattern = $this->fetch($req);
}
return view('admin.usershiftpattern', ['usps' => $usershiftpattern]);
}
public function fetch(Request $req)
{
$fname = explode(",", str_replace(' ','',$req->inputName));
$fshiftpatternid = explode(",", str_replace(' ','',$req->inputShiftPatternId));
$usershiftpatternlist = UserShiftPattern::query();
$userusp = UserShiftPattern::with('uspname')->get();
if(isset($req->inputName)){
$usershiftpatternlist = $userusp->whereIn('name',$fname);
}
if(isset($req->inputShiftPatternId)){
$usershiftpatternlist = $usershiftpatternlist->whereIn('shift_pattern_id',$fshiftpatternid);
}
$usershiftpatternlist = $usershiftpatternlist->has('uspattern')->get();
return $usershiftpatternlist;
}
VIEW:-
<tbody>
@foreach($usps as $uspslists => $uspslist)
<tr>
<td>{{ $uspslist->uspattern->name }}</td>
<td>{{ $uspslist->shift_pattern_id }}</td>
</tr>
@endforeach
</tbody>
Got an error:-
Symfony\Component\Debug\Exception\FatalThrowableError Call to a member function get() on bool
Please help thanks
I thin you need to modify your query
$fshiftpatternid = explode(",", str_replace(' ','',$req->inputShiftPatternId));
$usershiftpatternlist = UserShiftPattern::query();
if(isset($req->inputName)&&!empty($req->inputName)){
$usershiftpatternlist = $usershiftpatternlist->whereHas('uspname',function($q)use($req){
$q->where('name','like', "%{$req->inputName}%");
});
}
if(isset($req->inputShiftPatternId)){
$usershiftpatternlist = $usershiftpatternlist->whereIn('shift_pattern_id',$fshiftpatternid);
}
$usershiftpatternlist = $usershiftpatternlist->has('uspattern')->get();
return $usershiftpatternlist;