سلام من با استفاده از آموزش های سایت روکسو، کد تخفیف رو نوشتم ولی مشکلی که وجود داره اینه که کوئری میره از بین تمام کاربران چک میکنه اگر کاربر دیگه ای کد تخفیف رو استفاده کرده باشه پیغام منقضی شده رو میده
$check = Auth::user()->whereHas('coupons', function ($q) use ($request) {
$q->where('code', $request->code)->where('status',1);
});
if (!$check) {
$coupon = Coupon::where('code', $request->code)->first();
}
سلام، این تکه کدی که نمایش دادید در متغییر check$ مقداری ذخیره می شود که معادل عبارت زیر است:
Auth::user()
کاربری که در حال حاضر به سایت ورود کرده را پیدا کن
->whereHas('coupons', function ($q) use ($request) {
$q->where('code', $request->code)->where('status',1);
})
سپس برو داخل رابطه ای که این کاربر با جدول copouns دارد بررسی انجام بده (منظور جدول میانی coupon_user هست) و اگر این کد برای این کاربر در این جدول ثبت شده بود آن را داخل متغییر check بریز.»
if (!$check) {}
اگر کاربر کد تخفیف را استفاده نکرده بود آنگاه کد تخفیف موردنظر را از جدول coupons پیدا کن.
مشکلی در این قطعه کد وجود ندارد و شاید شما برداشت درستی نداشتید.
کاملا متوجه کد شدم ولی برای من جواب نداد به این صورت نوشتم تا به صورت صحیح کار کرد:
$coupon = Coupon::where('code', $request->code)->first();
$check = Auth::user()->whereHas('coupons', function ($q) use ($coupon, $users) {
$q->where('coupon_id', $coupon->id)
->where('status', 1)->where('user_id', $users->id);
})->exists();
به جمع هزاران کاربر اینستاگرامی روکسو بپیوندید.