۱ علی
pivot table
جامعه لاراول ایجاد شده در ۲۰ دی ۱۴۰۰

سلام

1.مدل pivot همون مدل واسط تو رابطه چند به چند هست؟

2.تویه لاراول نوشته (تو مثال زیر) به صورت خودکار به هر مدل role که بازیابی میشه یک اتربیوت pivot اختصاص داده میشه که این اتربیوت حاوی یک مدل هست ولی چرا وقتی کد زیر رو اجرا می‌کنیم یک instance از کلاس Illuminate\\Database\\Eloquent\\Relations\\Pivot به ما برمی‌گردونه؟ آیا پراپرتی pivot به صورت داینامیک صدا زده میشه؟

$user = User::find(1);
foreach ($user->roles as $role) {
    echo $role->pivot;
}

سلام دوست عزیز


 در روابط چند به چند، زمانی که میخوایم با طی کردن مسیر از جدول میانی به مقدار مرتبط با مدل اصلی برسیم، مثلا:

 $role->pivot->created_at 

الکوئنت به شکل خودکار یک attribute (خصیصه) از نوع جدول میانی با نام pivot در مدل role ایجاد می‌کنه و میره مقدار موجود رو فراخوانی می‌کنه... به همین خاطر هنگام echo کردن، الکوئنت به شما میگه نوع این رابطه از

Illuminate\\Database\\Eloquent\\Relations\\Pivot

هستش... دقت کنید نوع رابط نه نوع مدل (چون شما دارین رابطه رو چاپ می‌کنید) و دقیقا این موضوع به شکل داینامیک انجام میشه و داره اعلام می‌کنه از کدوم رابطه این دیتا رو فراخوانی کرده

رضا * ۲۰ دی ۱۴۰۰، ۱۴:۲۸