راکت

جوین درلاراول

8 پاسخ

سلام

من سه تا جدول دارم

products
shops
shop_products

و shop_products شامل دو کلید خارج به دو جدول دیگه هست

حالا من میخوام product هایی که مربوط به یک Shop هست رو بگیرم
چطور میشه این کار رو کرد ؟

ثبت پرسش جدید

پاسخ‌ها

8
محمد صادقیان
محمد صادقیان
@drcode.ir

تخصص: برنامه نویس وب - فریم ورک Laravel

فیلدهای جدول shop_products که دارای موارد زیر هست :
shop_id - product_id
حالا باید در model مربوط به shop هست relation زیر رو تعریف کنید.

public function products(){
   return $this->belongsToMany('AppProducts');
}

حالا هر جایی خواستید میتونید مثل زیر محصولات یک فروشگاه رو به دست بیارید.

return $shop->products;
مهدی
مهدی
@code2code

با استفاده از eloquent از رابطه many to many استفاده کنید که خود داکیومنت خیلی راحت توضبح داده
https://laravel.com/docs/5.7/eloquent-relationships#many-to-many
با استفاده از کوئری هم که دوتا جوین فقط باید بزنی ...

شاید پاسخ شما همین‌جا باشد

eMBi
eMBi
@bahadori.embi

تخصص: برنامه نویس

@dr-code.ir
ممنون
بجای AppProducts چی باید بزارم ؟

محمد صادقیان
محمد صادقیان
@drcode.ir

تخصص: برنامه نویس وب - فریم ورک Laravel

ببخشید اون به این شکل بود.
AppProduct
Product نام model محصولات شما هست.
یک سوال :
مگر هر محصول مختص ۱ فروشگاه نیست در سیستم شما؟ اگر اینطور هست چرا این روش رو برای تخصیص محصولات به فروشگاه انتخاب کردید؟

eMBi
eMBi
@bahadori.embi

تخصص: برنامه نویس

@dr-code.ir
پروژه ی دانشگاهیه، چند فروشندگی

ببنید من الان کد زیر رو در کلاس شاپ گذاشتم:

public function products() {

    return $this->belongsToMany('AppModels1Product');
}

و اینجوری فراخوانی کردم

$shop= shop::find($request->shop_id);

return $job->products();

خروجیم اینه:

[
{
"withTimestamps": false
}
]

eMBi
eMBi
@bahadori.embi

تخصص: برنامه نویس

@dr-code.ir
@code2code

متاسفانه توی پاسخ قبلی نشد منشن کنم،
لطفا ببینید

مهدی
مهدی
@code2code

فک کنم تو جدولاتون ستون تایم استمپ نداری پس باید توی مدلاتون این خطو اضافه کنی
public $timestamps = false;

محمد صادقیان
محمد صادقیان
@drcode.ir

تخصص: برنامه نویس وب - فریم ورک Laravel

ساختار جدول هاتون چیا هستن؟

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

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