2 -فیلتر انجام دادن سخت نیست مثلا فرض کن یه تیبل داری به اسم users با این فیلد ها
id , name , mobile , email
یه همیچن کدی میشه
function user(Request $request){
$query = User::orderBy('id' , 'desc');
if($request->input('name'))
$query->where('name' , $request->input('name'));
if($request->input('mobile'))
$query->where('mobile' , $request->input('mobile'));
$users = $query->paginate(10);
}
یا اگه بخای یجا شرط ها رو بفرستی
function user(Request $request){
$cond = [] ;
if($request->input('name'))
$cond[] = ['name' , $request->input('name') ];
if($request->input('mobile'))
$cond[] = ['mobile' , $request->input('mobile') ];
$users = User::where($cond)->orderBy('id' , 'desc')->paginate(10);
}
اگرم بخای روی یک تیبل دیگه که با کلید خارجی به تیبل users وصله فیلتر انجانم بدی اول relation رو تعریف میکنی تو مدل مثلا تیبل user_profiles هم داری که توش مشخصات دیگر یوزر هستن
function UserProfile (){
return $this->hasOne(UserProfile::class );
}
بعد تو کوئریت میزنی
if($request->input('somedata'))
{
$query->whereHas('UserProfile' , function($q) use ($request){
$q->where('somedata' , $request->input('somedata'));
});
}