سلام
من شرطی دارم به این صورت
$data1 = DB::table('members_days')
->select('id') ->orderBy('count', 'ASC')
->orWhere(function($query)
{
$query->where('gender', Members::GENDER_FEMALE)
->where('Monday', 'M');
})->orWhere(function($query)
{
$query->where('gender', Members::GENDER_MALE)
->where('Monday', 'M');
})
->orWhere(function($query)
{
$query->where('gender', Members::GENDER_FEMALE)
->where('Monday', 'E');
})
->get();
میخوام حالتی بشه که بگم مثلا از شرط اولیه دوتا ممبر رو لیمیت کن و از شرط دومیه ۱ ممبر رو لیمیت کن و از شرط سومیه ۵ تا .
لیمیت میزارم جواب نمیده . و لیمیت رو کل هم نه و میخوام هر شرطی لیمیت خودش رو داشته باشه .
کسی میدونه باید به چه صورت عمل کرد؟؟
باید روی شرط ها لیمیت بزاری و نتایج رو باهم union کنی. مثلا یه چیزی شبیه کد زیر
$b = Model::where('code', '=', $code)->where('col_b', '=' , 1)
->limit(3)
->union(
Model::where('code', '=', $code)->where('col_a', '=' , 1)->limit(3);
)
->get();
ممنون
اینجوری حلش کردم .
$NFemaleMember = DB::table('members_days')
->select('id')
->where('gender', Members::GENDER_FEMALE)
->where($weekDay, 'N')
->orderBy('count', 'ASC')
->limit($NFemale);
$NMaleMember = DB::table('members_days')
->select('id')
->where('gender', Members::GENDER_MALE)
->where($weekDay, 'N')
->orderBy('count', 'ASC')
->limit($NMale);
$LFemaleMember = DB::table('members_days')
->select('id')
->where('gender', Members::GENDER_FEMALE)
->where($weekDay, 'L')
->orderBy('count', 'ASC')
->limit($LFemale);
$LMaleMember = DB::table('members_days')
->select('id')
->where('gender', Members::GENDER_MALE)
->where($weekDay, 'L')
->orderBy('count', 'ASC')
->limit($LMale)
->unionAll($NFemaleMember)
->unionAll($NMaleMember)
->unionAll($LFemaleMember)->get();
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟