У меня есть Пользователь модель и Заказ модель.Пользователь hasMany Order.
Таблица заказов имеет столбец user_id, а также столбец итогов.
Я хотел бы иметь virtulField
для модели User, котораяэто количество заказов, связанных с этим пользователем.
Я также хотел бы иметь виртуальное поле на Пользователе, которое является суммой всех итогов.
Единственный способ, которым я смог заставить это работать, заключается в следующем:
public $virtualFields = array(
'total_orders' => '(SELECT COUNT(orders.user_id) FROM orders WHERE orders.user_id = User.id AND orders.status != "void" GROUP BY orders.user_id)',
'total_sales' => '(SELECT SUM(orders.total) FROM orders WHERE orders.user_id = User.id AND orders.status != "void" GROUP BY orders.user_id)',
);
Я не уверен, что это лучшее решение, есть ли лучший способ?