با سلام
هنگام جستجو در کاربران ادمین بر اساس نام و نام خانوادگی و کد ملی در لاراول از دستور where و orWhere استفاده می کنم و مشکلم اینجاست که وقتی از orWhere استفاده میکنم دیگه فقط ادمین هارو برنمیگردونه و تمام کاربراهرو برمیگردونه
به این صورت
$query = Collect::where('name' , '%' . $search .'%')->orwhere('mobile' , '%' . $search .'%')->where('is_admin' , true)->limite(10)->get();
نه دیگه اینطوری جستجوش به هم میریزه.
اینطوری میشه هم اسمش و هم فامیلیش و هم کد ملیش مقدار جستجو شده باشه!!
در صورتی که یا اسمش یا فامیلیش یا کد ملیش باید اون مقدار باشه
این چیزی که میخوای نباید اینطوری سرچ کنی
باید یه فیلتر بزنی بعد توی فیلتر LIKE بذاری و هر فیلدی که میخوای سرچ کنی
من الان یه select box دارم که vue-select هست
داخلش میخام اسم یا فامیل یا کد ملی یه ادمین که وارد شد لیست اونارو به صورت ajax بیاره،فک نمیکنم بشه به صورت filter درش اورد که جدا فیلد هاشو جستجو کنم
سلام دوست عزیز
@vahiidrah
این مورد اینکه همه کابران رو میاره طبیعیه چون در کوئری شما از orwhere استفاده شده.
برای اینکه ریلیشن شما (has)به درستی فیلتر بشه اونو بعد از orwhere ها قرار بدید :
$query = Collect::where('name' , '%' . $search .'%')->orwhere('mobile' , '%' . $search .'%')->whereHas('role' , function (Builder $q){
$q->where('permission' , 'admin');
})->limite(10)->get();```
با سلام
خیلی ممنون
اگه table ادمین جدا نباشه و یه فیلد بولیین is_admin داشته باشیم به چه صورت باید query برنیم؟
به این صورت
$query = Collect::where('name' , '%' . $search .'%')->orwhere('mobile' , '%' . $search .'%')->where('is_admin' , true)->limite(10)->get();
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟