Нужно реализовать связь сводной таблицы в модели Eloquent, но я не уверен, возможно ли это.
Для иллюстрации предположим, что у нас есть система, которая отслеживает, какие фильмы и в каких кинотеатрах воспроизводятся.Также предположим, что в кинотеатрах могут быть рекламные скидки для снижения цены билета.Некоторые скидки могут иметь ограничения (минимальная цена билета или только фильмы с рейтингом G и т. Д.), И скидки могут или не могут комбинироваться.
Структура БД:
movies (id, title...)
theaters (id, name,...)
discounts (id, theater_id, discount_amount, min_price, can_combine)
theater_movies (id, movie_id, theater_id, ticket_price)
movie_discounts (id, movie_id, discount_id)
Модель Laravel TheatreMovie
class TheaterMovie extends Model
{
public function discounts()
return $this->hasManyThrough(
Discount::class,
MovieDiscount::class,
'movie_id', // Foreign key on movie_discounts table...
'id', // Foreign key on discounts table...
'movie_id', // Local key on theater_movies table...
'discount_id' // Local key on movie_discounts table...
)
}
Но это не захват отношения theatre_movies.theater_id = discount.theater_id и в идеале также будет проверять ticket_price с min_price.