Как получить доступ к определенной промежуточной таблице в случае нескольких отношений ManyToMany в отношениях Laravel EPhp

Кемеровские программисты php общаются здесь
Anonymous
Как получить доступ к определенной промежуточной таблице в случае нескольких отношений ManyToMany в отношениях Laravel E

Сообщение Anonymous »

У меня есть модель Product, и один и тот же товар может продаваться в нескольких супермаркетах и ​​торговых точках, поэтому я определяю для них два отношения BelongsToMany:

Код: Выделить всё

class Product extends Model
{
public function supermarkets(): BelongsToMany
{
return $this->belongsToMany(
Supermarket::class,
'product_supermarket',
'product_id',
'supermarket_id'
);
}

public function outlets(): BelongsToMany
{
return $this->belongsToMany(
Outlet::class,
'outlet_product',
'product_id',
'outlet_id'
);
}
}
Затем в модели Supermarket я определяю отношение BelongsToMany к модели Products, поскольку один супермаркет может продавать много разных продуктов.

Код: Выделить всё

class Supermarket extends Model
{
public function products(): BelongsToMany
{
return $this->belongsToMany(
Product::class,
'product_supermarket',
'supermarket_id',
'product_id'
);
}
}
Если я хочу получить доступ к промежуточной таблице product_supermarket, я могу:

Код: Выделить всё

foreach ($supermarket->products as $product) {
echo $product->pivot->created_at;
}
Однако мы видим, что модель Product имеет два объекта BelongsToMany, определенные в ее классе. Так как же будет выглядеть сводка свойств в таком случае? Как я могу получить доступ к промежуточной таблице product_supermarket или Outlet_product?
Я прочитал официальную документацию Laravel, но не нашел в ней ничего об этом: https:/ /laravel.com/docs/11.x/eloquent-relationships

Подробнее здесь: https://stackoverflow.com/questions/786 ... ny-relatio

Вернуться в «Php»