سلام ، دوستان من سه مدل دارم با نام های Attribute , AttributeValue , Product که با استفاده از رابطه لاراول باهم ارتباط دارن به این صورت
class Attribute extends Model
{
protected $fillable = ['name'];
public function values()
{
return $this->hasMany(AttributeValue::class);
}
}
class AttributeValue extends Model
{
protected $fillable = ['value'];
public function attribute()
{
return $this->belongsTo(Attribute::class);
}
}
برای اینکه ب مقادیر AttributeValue دسترسی داشته باشم یک مدل دیگ اضافه کردم به این صورت
class ProductAttributeValues extends Model
{
public function value()
{
return $this->belongsTo(AttributeValue::class , 'value_id' , 'id');
}
}
و این هم مدل Product من هست
class Product extends Model
{
protected $fillable = ['title' , 'description' , 'price' , 'inventory' , 'view_count' , 'image'];
public function attributes()
{
return $this->belongsToMany(Attribute::class)->using(ProductAttributeValues::class)->withPivot(['value_id']);
}
}
حالا برای فراخوانی کردن دیتا با استفاده از pivot ارور دارم کدی که مینویسم به این شکل هست
@foreach ($product->attributes()->pivot->value as $item)
@endforeach
@ali.bayat
بفرمایید
ErrorException
Undefined property: Illuminate\Database\Eloquent\Relations\BelongsToMany::$pivot (View: C:\Users\ENIACK\Desktop\farshid_moradi\resources\views\product.blade.php)
ببینید قبل از as شما باید از یک کالکشن یا آرایه استفاده کنید و بعد اون رو پیمایش کنید
حالا متن خطا (Undefined property) داره میگه چنین پراپرتی وجود نداره و درست هم هست
باید رابطه attributes رو به شکل یک پراپرتی صدا بزنید تا به شما یک کالکشن برگردونه
@foreach ($product->attributes as $item)
@endforeach
روش بالا رو امتحان کنید
@ali.bayat
ممنونم از پاسخگوییتون پیمایش انجام میشه
ولی بازم ارور میده ، کدم رو به این صورت نوشتم
{{$item->pivot->value}}
و متن ارور
ErrorException
Trying to get property 'pivot' of non-object (View: C:\Users\ENIACK\Desktop\farshid_moradi\resources\views\product.blade.php)
این متن خطا هم داره میگه Item اصلا آبجکت نیست
برای تست رابطه Many to Many که نوشتید. از Tinker استفاده کن:
متد belongsToMany آرگومان های دیگه ای هم میپذیره مثل اسم pivot و Column ها
اسم جدول واسطت رو چی گذاشتی ؟
توی تینکر امتحان کن و متن خطا رو اینجا منتشر کن
@ali.bayat
راستش من با تینکر کار نکردم ،
جدول رابط ProductAttributeValues
هست کدش هم بالا هس
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟