Laravel: временная сводная таблица - PullRequest
0 голосов
/ 22 октября 2018

Сценарий

У меня есть таблица заказов, в которой, помимо прочего, есть тип заказа:

Таблица: заказы

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() возвращают все ещеколлекция, тогда как мне нужна была бы текущая модель напрямую.И я не уверен, что это в общем правильное направление, в котором я иду сюда.Буду признателен за любые рекомендации и советы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...