امیررضا
2 سال پیش توسط امیررضا مطرح شد
1 پاسخ

laravel

سلام خسته نباشید من یک کنترولر customer دارم و یک کلیک گذاشتم براش ک هرکی خواست شمارش از اونجا عوض کنه
ولی داخل متد  تصویر

اگر طرف شماره داشت وارد صفحه بشه وگرن ریدایرکت بشه

الان دقیقا مشکل چیه؟؟


ثبت پرسش جدید
ابوالفضل رجائی نسب
تخصص : برنامه نویس (laravel-backend-p...
@abol313 2 سال پیش مطرح شد
0

بِسْمِ اللَّهِ الرَّحْمَٰنِ الرَّحِيمِ
الْحَمْدُ لِلّٰه بِسْمِ اللَّهِ الرَّحْمَٰنِ الرَّحِيمِ
الْحَمْدُ لِلّٰه

سلام، به نظر من اصلا منطق کد در اشتباهه! چه برسع به runtime
چند تا دلیلم:
۱. توی کد

$user = User::select('mobile')->get();

اومدی شماره موبایلا رو گرفتی که به عنوان collection میاد ذخیره میشه، اما توی دستور بعدی به نظر من همون طور که گفتی می خوای ببینی می خواستی شماره رو طرف (اونی که لاگین شده) شماره داره یا نه
اونم با دستور پایین که هم از لحاظ ساختار کد اشتباهه هم منطق! منطق اشتباهشم اینه که اومدی شماره هارو گرفتی بعدش می خوای چک کنی شماره داره یا نه:

User::where($user, '!=', null)

۲. اشتباه تو کد بالا از لحاظ ساختاری و منطقی هم اینه که با متد where، پارامتر اول نام ستون مورد نظر توی جدول توی دیتابیس هست نه دیگه تا بره اون ستون رو بر اساس پارامتر های بعدی همون متد بررسی کنه و بندازه روی query builder و بعدش که get کنی اونارو که شرط روشون برقراره رو برگردونه‌ انگار درستش اینه:

User::where('id',$id_of_your_user_to_check)->where('mobile','!=',null)->get()->isNotEmpty()
  1. همین طور بهتره واسه بررسی null ها، از متد های whereNull و whereNotNull استفاده کنی و فقط یک پارامتر میگیره به عنوان نام اون ستون و همون طور که از نام متد ها معلومه این دوتا به ترتیب اونایی null هست(whereNull) و نیست(whereNotNull) رو برمی گردونه، خب :
    User::where('id',$id_of_your_user_to_check)->whereNotNull('mobile')->get()->isNotEmpty()

    یا

    User::find($id_of_your_user_to_check)->mobile !== null

    یا اگه می خوای کاربر لاگین شده رو بررسی کنی

    $request->user()->mobile !== null

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام