Как получить доступ к определенной промежуточной таблице в случае нескольких отношений 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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