سلام وقت بخیر.
با استفاده از eloquent می خوام شرط زیر رو بزارم.
من یک جدول کاربر دارم که گروه بندی شده. به نام user و category
حالا موقع جستجو می خوام بگم که کاربرانی که در گروه فلان قرار دارن برام لیست بشن.
اینم دارم که کاربرانی که در یک کلاس درسی فلان هم هستن بیاره.
در واقعا یعنی کاربرانی که در گروه فلانی و در کلاس درسی فلان هستن لیست بشه.
اگر چند به چند و یک به چندش با هم فرق داره توضیح بدید.ممنونم.
سلام آخرش پیداش کردم. کد رو باید به این صورت نوشت.
Courses::whereHas("categories" , function ($query) use ($cat) {
$query->whereIn("id", $cat);
});
سلام
برای اینکار رابطه های eloquent خیلی کمک میکنه
تو فقط کافیه کاربر هارو انتخاب کنی بعد از تابع هایی که توی مدل کاربر ساختی استفاده کنی
به این صورت :
// in function baraye gereftan goroh hai hast ke user tosh ozve
public function Category(){
return $this->hasMany(category::class,"id","category_id");
}
اگر کاربرهایی رو بخوای که توی گروه خاصی هستند باید اینکارو کنی
$cat="Rp76";
$user=User::with(["Category"=>function($query) use ($cat){
$query->where("title",$cat);
}])->get();
حالا اگر بخوای کلاس هم اعمال کنی باید اینکارو کنی که تقریبا مثل کار بالا هست
این ۲ تا برای مدل user
public function Category(){
return $this->hasMany(category::class,"id","category_id");
}
public function Class(){
return $this->hasMany(class::class,"id","class_id");
}
این هم برای کنترلرت
$cat="Rp76";
$class="programming";
$user=User::with(["Category"=>function($query) use ($cat){
$query->where("title",$cat);
},"class"=>function($query) user ($class){
$query->where("title",$class);
}])->get();
من این کد هارو بدون ide زدم امیدوارم درست باشه و کارت رو راه بندازه
@hesammousavi
@Rp76
@ali.bayat
@milad
@mhyeganeh
سلام این کدهای منه که در زیر قرار دادم ولی وقتی کد شما رو میزنم همه آیتم ها رو لیست می کنه و داخل اون ارایه ها که برمیگردونه یک آیتمی به نام relations مقدار دهی می شه نصبت به کدی که شما دادید.
من می خوام که همه آیتمها رو نشون نده و اونایی رو نشون بده که شراط براش برقراره. ممنونم. می تونم حتی remote در اختیار بزارم تا محبت کنید و ببینید. تشکر.
مدل Courses
public function categories()
{
return $this->belongsToMany(categories::class, 'category_course', 'course_id', 'category_id');
}
مدل categories
public function courses()
{
return $this->belongsToMany(Courses::class, 'category_course', 'category_id', 'course_id');
}
اینم کدی که می خوام لیست کنم.
$db = Courses::where('active', '1')->find(1);
$cat = $this->link['categories'];
$db->with(["categories" => function ($query) use ($cat) {
$query->whereIn("id", $cat);
}]);
dd($db->get());
توی خروجی همه رو نشون می ده
سلام آخرش پیداش کردم. کد رو باید به این صورت نوشت.
Courses::whereHas("categories" , function ($query) use ($cat) {
$query->whereIn("id", $cat);
});
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟