سلام
من یه جدول دارم به اسم order_product و داخلش ستون های order_id و product_id و qty (تعداد محصولات در هر سفارش) و color (رنگ محصول) و size (سایز محصول) وجود داره ستون های order_id و product_id رابطه چند به چند بین order و product هست و ستون های color و size هم یک رابطه یک به چند بین attributeGroup و order_product هست یعنی مثلا توی ستون color جدول order_product مقدار 10 قرار میگیره و این 10 به شماره id جدول attributeGroup اشاره میکنه که title اون هست مثلا آبی
برای گرفتن مقدار qty با توجه به روابط میتونم به صورت product->pivot->qty$ بنویسم و مقادیر را دریافت کنم
کد کنترلر :
() order=Order::with('products.photos')->whereId($id)->first$
کد blade :
@foreach($order->products as $product)
<tr>
<td class="text-center">{{$product->pivot->qty}}</td>
</tr>
@endforeach
حالا برای گرفتن مقدار color و size باید چطوری عمل کنم؟؟؟
اگر برای رنگ یک جدول و برای سایز هم یک جدول داشته باشی چون هر محصول میتونه چند رنگ و چند سایز داشته باشه باید از رابطه یک به چند در لاراول استفاده کرد که مستنداتش در راکت هست
@karimpanah76
یه راهش اینه که دستی این کارو انجام بدید، یعنی توی مدلتون order و product تابعی بنویسید به اسم getColor و pivot->colorid رو بگیرید و دستی به جدول رنگ ها کوئری بزنید .
راه دوم اینه که برای جدول پیوت هم مدل تعریف کنید ،
توی مدل product به ریلیشن بفهمونید که کلاس پیوت کجاست
public function orders()
{
return $this->belongsToMany(Order::class)->using(OrderProduct::class)->withPivot('color')
}
و یک فایل مدل برای جدول پیوت به اسم OrderProduct درست کنید
use Illuminate\Database\Eloquent\Relations\Pivot;
class OrderProduct extends Pivot{
protected $table = 'order_product';
public function color() {
return $this->belongsTo('Color');
}
}
برای استفادش هم میتونید از pivot->color به رنگ دسترسی پیدا کنید
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟