Краткая предыстория: у меня есть заказы, содержащие продукты под названием «Комплексы». Комплексы имеют разные размеры (высоту и ширину), если есть несколько комплексов с одинаковыми мерами в порядке их группировки и добавления счетчика для создания рабочих мест для рабочих.
Мои модели:
class Order extends AppModel {
public $hasMany = 'Komplex';
public $belongsTo = array(
'Customer' => array(
'counterCache' => true
)
);
}
class Komplex extends AppModel {
public $belongsTo = array(
'Order' => array(
'counterCache' => true
)
);
...<validation and calculations>
}
В моем OrdersController я начинаю с
public function orderproductionjob($id = NULL) {
if (!$id) {
throw new NotFoundException(__('Invalid ID'));
}
$order = $this->Order->find('all', array(
'conditions' => array('Order.id =' => $id),
'group' => array('Komplex.height')
));
die(debug($order));
Это дает мне ошибку базы данных:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Komplex.height' in 'group statement'
Тот же «найти» без «группы» дает мне правильный результат (кроме группировки ;-)
Так что совершенно очевидно, что я делаю что-то не так с группой. Я мог бы найти примеры для ассоциаций и примеры для группировки в Интернете и в поваренной книге, но эта комбинация не упоминалась или, вероятно, я ее не нашел. Поскольку это мой первый проект с cakephp, я надеюсь, что кто-нибудь с большим опытом сможет мне помочь.
Что я пытаюсь заархивировать в SQL:
SELECT orders.id, orders.name, komplexes.width, komplexes.height, count(komplexes.id) as Count
FROM orders, komplexes
WHERE orders.id = 1 AND komplexes.order_id = orders.id
group by komplexes.width, komplexes.height;