سلام دوستان.
یه قسمتی از پنل ادمین اطلاعات نویسنده ها رو نمایش میدم و همچنین تو این صفحه میخوام عمل جستجو رو انجام بدم ولی میخوام زمانی که مثلا یه اسمی رو سرچ میکنم و اون کاربر role ش ادمین هست داخل نتایج جستجو نمایش داده نشه که از دستور زیر استفاده کردم:
public function author() {
$users = User::query()
->when($keyword = request('search'), function ($query) use ($keyword) {
$query->where(DB::raw('concat(firstName, " ", lastName)'), 'LIKE', "%{$keyword}%")
->orWhere('mobile', 'LIKE', "%{$keyword}%")
->orWhere('email', 'LIKE', "%{$keyword}%")
->where('role', 'author');
});
$users = $users->where('role', 'author')->latest()->paginate(10);
return view('Panel.users.admins', compact('users'));
}
ولی وقتی جستجو میکنم کاربرایی که ادمین هستن هم داخل نتایج جستجو نمایش داده میشن.
ممنون میشم راهنمایی کنید.
سلام به شما عزیزان
مشکل ایشون به این صورت بر طرف میشد:
$users = User::query()
->where('role', 'author')
->when($keyword = request('search'), function ($query) use ($keyword) {
$query->where('fullName', 'LIKE', "%{$keyword}%")
->orWhere('phone', 'LIKE', "%{$keyword}%")
->orWhere('email', 'LIKE', "%{$keyword}%");
});
$users = $users->where('role', 'author')->latest()->paginate(10);
return view('Panel.users.authors', compact('users'));
موفق باشید.
سلام
شما میخواید همه کاربران رو به جز ادمین نشون بده پس میتونید بنویسید هرچیزی به جز ادمین، پس بهتره بنویسید :
where("role", "!=" , "admin")
لطفا اینو تست کنید ببینید جواب میده یا نه
اگر جواب نداد بنده رو مخاطب (Mention) بکنید/قرار بدید.
@ehsndvr
جواب نداد ولی من نمیخوام همه رو به جز ادمین نشون بدم.
ببینید من سه نوع کاربر دارم:
admin
author
user
حالا تو این قسمت میخوام فقط نویسنده ها داخل نتایج جستجو نمایش داده بشن.
@arminrahmati999 لطفا کارهایی رو که تا الان برای حل این مشکل امتحان کردید رو بنویسید. و اینکه شما چرا دوباره این قسمت :
$users = $users->where('role', 'author')->latest()->paginate(10);
میگید بر اساس نقش نویسنده افراد رو پیدا بکنه درصورتی که اون بالا هم دوباره همین رو تعریف کردید ؟
@ehsndvr
من اگه کدمو به صورت زیر بنویسم، یعنی فقط با نام و نام خانوادگی جستجو کنم به درستی کار میکنه ولی من میخوام جستجو براساس نام و نام خانوادگی، موبایل و ایمیل باشه.
public function author() {
$users = User::query()
->when($keyword = request('search'), function ($query) use ($keyword) {
$query->where(DB::raw('concat(firstName, " ", lastName)'), 'LIKE', "%{$keyword}%")
->where('role', 'author');
});
$users = $users->where('role', 'author')->latest()->paginate(10);
return view('Panel.users.admins', compact('users'));
}
در مورد سوال دومی که پرسیدن باید بگم که کد زیر :
$users = $users->where('role', 'author')->latest()->paginate(10);
زمانی که عمل جستجو انجام نشده و فقط صفحه مورد نظر فراخوانی میشه، نتایج رو که میشه کاربرایی که role شون نوسینده هست رو نشون میده و اگه عمل جستجو انجام بشه کد زیر میشه:
public function author() {
$users = User::query()
->when($keyword = request('search'), function ($query) use ($keyword) {
$query->where(DB::raw('concat(firstName, " ", lastName)'), 'LIKE', "%{$keyword}%")
->orWhere('mobile', 'LIKE', "%{$keyword}%")
->orWhere('email', 'LIKE', "%{$keyword}%")
->where('role', 'author');
});
return view('Panel.users.admins', compact('users'));
}
سلام
کد های where رو به این صورت بنویسید:
where('role', '=','author')
اگر این روش هم جواب نداد، داخل تلگرام به بنده پیام بدید که با AnyDesk به سیستمون وصل بشم و سعی کنم درستش کنم.
آیدی تلگرام : ehsndvr@
سلام به شما عزیزان
مشکل ایشون به این صورت بر طرف میشد:
$users = User::query()
->where('role', 'author')
->when($keyword = request('search'), function ($query) use ($keyword) {
$query->where('fullName', 'LIKE', "%{$keyword}%")
->orWhere('phone', 'LIKE', "%{$keyword}%")
->orWhere('email', 'LIKE', "%{$keyword}%");
});
$users = $users->where('role', 'author')->latest()->paginate(10);
return view('Panel.users.authors', compact('users'));
موفق باشید.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟