نمایش نتایج 1 تا 6 از 6

نام تاپیک: دریافت اطلاعات از ارتباط چند به چند

  1. #1

    دریافت اطلاعات از ارتباط چند به چند

    توی لاراول
    یه جدول users داریم
    یه جدول roles
    جدول واسط role_user


    هر کاربر میتونه چند تا نقش داشته باشه و یک نقش میتونه مربوط به چند تا کاربر باشه


    حالا میخوام کاربرانی که نقش 1 و 5 دارند پیدا کنم
    با کد زیر . کاربرانی که هم نقش 1 و هم نقش 5 داره نمایش داده میشن
    یعنی کاربری اگه نقش 1 داشته باشه نمایش داده میشه
    من میخوام کاربرانی که فقط 1 و 5 و یا بیشتر دارند نمایش داده بشن
    یعنی کاربری که نقش 1 و 2 و5 داره هم نمایش داده بشه

    $roles_id = [1,5];
    $Get = Users::whereHas('roles', function ($query) use ($roles_id){
    $query->whereIn('id', $roles_id);
    });


    ممنون میشم راهنمایی کنید

  2. #2
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: دریافت اطلاعات از ارتباط چند به چند

    من که متوجه نشدم سوالت چیه یکم بهتر توضیح بده

  3. #3

    نقل قول: دریافت اطلاعات از ارتباط چند به چند

    ببینید

    یه جدول users داریم
    id:increment
    name:string


    یه جدول roles
    id:increment
    name:string


    جدول واسط role_user
    role_id:increment
    user_id:increment

    هر کاربر میتونه چند نقش داشته باشه
    و هر نقش هم میتونه متعلق به چند کاربر باشه ManyToMany
    توی مدل user

    function roles(){
    return $this->belongsToMany('App\roles');
    }

    و توی کنترلر

    $roles_id = [1,5];
    $Get = Users::whereHas('roles', function ($query) use ($roles_id){
    $query->whereIn('role_id', $roles_id);
    });

    این کد به من کاربرانی که رول 1 یا 5 دارن را میده . اما من کاربرای را میخوام که فقط رول 1 و 5 دارند.




    مثلا کاربر A رول 1,2,3 داره
    کاربر B رول 1,3,5,6 داره
    کاربر C رول 5,7
    کاربر D رول 6,7
    با دستور بالا کاربرانی که برمیگردونه A,B,C هستند .




    میخوام کدی باشه که فقط کاربر B را بگیره . اونی که هر دوتا رول داره .
    آخرین ویرایش به وسیله kab00k : یک شنبه 24 تیر 1397 در 15:46 عصر

  4. #4
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: دریافت اطلاعات از ارتباط چند به چند

    اگه میخای همه رو ببینه اینجوری بنویس

    $query->where('role_id', 1)->where('role_id', 5);


    اینجوری هم میشه

    foreach($roles_id  as $rid )
    $query->where('role_id', $rid);

  5. #5

    نقل قول: دریافت اطلاعات از ارتباط چند به چند

    سپاس
    اما این کد هیچ نتیجه ای برنمیگدونه

  6. #6
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: دریافت اطلاعات از ارتباط چند به چند

    این پکیج رو نصب کن روی پروژت که بتونی کوئری های که اجرا میشه رو ببینی چی هستن
    https://github.com/barryvdh/laravel-debugbar

تاپیک های مشابه

  1. سوال: دریافت اطلاعات از پایگاه داده به وسیله Entity FrameWork
    نوشته شده توسط Black_Hammer در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 1
    آخرین پست: چهارشنبه 24 شهریور 1395, 18:48 عصر
  2. سوال: ارسال و دریافت اطلاعات از ویندوز فرم به سرور
    نوشته شده توسط آرش کبیری در بخش WCF , Web Services , .Net Remoting
    پاسخ: 1
    آخرین پست: دوشنبه 02 شهریور 1394, 12:04 عصر
  3. سوال: ارسال و دریافت اطلاعات از ویندوز فرم به سرور
    نوشته شده توسط آرش کبیری در بخش ASP.NET MVC
    پاسخ: 1
    آخرین پست: یک شنبه 21 تیر 1394, 11:07 صبح
  4. دريافت اطلاعات از يك table به دو combobox
    نوشته شده توسط ghaedi70 در بخش C#‎‎
    پاسخ: 3
    آخرین پست: پنج شنبه 30 مرداد 1393, 10:07 صبح
  5. دريافت اطلاعات از فايل اكسل به ديتا گريد ويو
    نوشته شده توسط fazeli2009 در بخش VB.NET
    پاسخ: 4
    آخرین پست: سه شنبه 09 تیر 1388, 09:02 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •