سلام
من سه تا جدول دارم
products
shops
shop_products
و shop_products شامل دو کلید خارج به دو جدول دیگه هست
حالا من میخوام product هایی که مربوط به یک Shop هست رو بگیرم
چطور میشه این کار رو کرد ؟
فیلدهای جدول shop_products که دارای موارد زیر هست :
shop_id - product_id
حالا باید در model مربوط به shop هست relation زیر رو تعریف کنید.
public function products(){
return $this->belongsToMany('AppProducts');
}
حالا هر جایی خواستید میتونید مثل زیر محصولات یک فروشگاه رو به دست بیارید.
return $shop->products;با استفاده از eloquent از رابطه many to many استفاده کنید که خود داکیومنت خیلی راحت توضبح داده
https://laravel.com/docs/5.7/eloquent-relationships#many-to-many
با استفاده از کوئری هم که دوتا جوین فقط باید بزنی ...
شاید پاسخ شما همینجا باشد
@dr-code.ir
ممنون
بجای AppProducts چی باید بزارم ؟
@dr-code.ir
پروژه ی دانشگاهیه، چند فروشندگی
ببنید من الان کد زیر رو در کلاس شاپ گذاشتم:
public function products() {
return $this->belongsToMany('AppModels1Product');
}
و اینجوری فراخوانی کردم
$shop= shop::find($request->shop_id);
return $job->products();
خروجیم اینه:
[
{
"withTimestamps": false
}
]
@dr-code.ir
@code2code
متاسفانه توی پاسخ قبلی نشد منشن کنم،
لطفا ببینید
فک کنم تو جدولاتون ستون تایم استمپ نداری پس باید توی مدلاتون این خطو اضافه کنی
public $timestamps = false;