Когда мы реализуем отношение Многие ко многим , по умолчанию создается промежуточная таблица
В вашем случае это таблица attribute_product
, мы можем ссылаться на эту таблицу как Pivot
таблица.
Это значение таблицы было получено этой моделью по pivot
имени атрибута следующим образом:
$product = App\Product::find(1);
foreach ($product->attributes as $attribute) {
echo $attribute->pivot->product_id;
}
Чтобы добавить дополнительный столбец в ( Сводная таблица )
По умолчанию в таблице attribute_product
присутствуют только ключи модели [$attribute_id
, $product_id
]. Если ваша таблица pivot
содержит дополнительные атрибуты, вы должны указать их при определении отношения:
return $this->belongsToMany('App\Attribute')->withPivot('column1', 'column2','value');
Чтобы изменить pivot
Имя атрибута на ваше имя
вы можете через sh переименовать свой метод доступа к промежуточной таблице в values
вместо pivot
.
return $this->belongsToMany('App\Attribute')
->as('values')
Тогда вы получите $attribute->values->product_id
вместо $attribute->pivot->product_id