Doctine ORM: различный маппинг одного и того же класса

Давайте представим, что в базе данных есть таблица заказов:

+-----+--------------+------------+----------+
| id  | total_price  | commission | currency |
+-----+--------------+------------+----------+
| 13  |       150.23 |      5.88  | USD      |
| 14  |        41.23 |      4.10  | EUR      |
+-----+--------------+------------+----------+

А теперь предположим, что есть класс заказа с такими свойствами:

class Order {
    public Money $total_price;
    public Money $commission;
}

При этом класс Money, который является объектом-значением, будет выглядеть вот так:

class Money {
    public float $amount;
    public string $currency;
}

Видно, что в обоих случаях значение свойства $currency класса Money должно тянуться из одного и того же поля. Значит, для него нельзя просто создать единый файл маппинга, а необходимо под каждое свойство реализовывать своё решение. Что необходимо прописать и как указать это доктрине?


Ответы (0 шт):