Сценарий
У меня есть таблица заказов, в которой, помимо прочего, есть тип заказа:
Таблица: заказы
id
order_type_id
...
Теперь я могу добавлять статьи в заказ через сводную таблицу order_articles, но это не главное.
Таблица: order_articles
order_id
article_id
amount
...
Кроме того, у меня есть сводная таблица между типами заказов и статьями, которая определяет такие вещи, как цена этой статьи для различных типов заказов.
Таблица: article_order_types
article_id
order_type_id
price
...
Проблема
Теперь у меня есть новое требование, что цена типа заказа товара зависит от времени, что в основномозначает, что этой сводной таблице нужны два начальных и конечных столбца даты и времени.
Пока все хорошо, но я немного борюсь с отношениями Laravel в этом случае.В настоящее время я думаю о чем-то вроде следующих отношений:
Article.php (Model)
public function orderTypes()
{
return $this->belongsToMany( OrderType::class , 'article_order_types' )->withPivot( [ 'price' , 'start' , 'end' ] );
}
public function currentOrderType()
{
return $this->orderTypes()->wherePivot( 'start' , '<=' , today() )->wherePivot( 'end' , '=' , null );
}
Это имеет несколько проблем, например, отношения currentOrderType()
возвращают все ещеколлекция, тогда как мне нужна была бы текущая модель напрямую.И я не уверен, что это в общем правильное направление, в котором я иду сюда.Буду признателен за любые рекомендации и советы.