如何将 sql 转换为 orm cakephp2
how to converting sql to orm cakephp2
所以我有这个查询,我正在尝试将其转换为蛋糕 ORM,但我不知道该怎么做
SELECT users.id, users.email, users.phone, SUM(user_orders.quantity ) , SUM(user_orders.total_price )
FROM `users`
JOIN `user_orders` ON users.id = user_orders.user_id
WHERE users.role_id =2
AND user_orders.status =1
GROUP BY users.id
ORDER BY SUM( user_orders.quantity ) DESC
LIMIT 200
在您的用户模型中:
$this->virtualFields = array(
'sum_user_orders_quantity' => 'SUM(UserOrders.quantity)',
'sum_user_orders_total_price' => 'SUM(UserOrders.total_price)',
);
$options = array(
'fields' => array(
'Users.id',
'Users.email',
'Users.phone',
'UserOrders.sum_user_orders_quantity',
'UserOrders.sum_user_orders_total_price',
),
'joins' => array(
array(
'conditions' => array(
'Users.id = UserOrders.user_id',
),
'table' => 'user_orders',
'alias' => 'UserOrders',
'type' => 'join',
),
),
'conditions' => array(
'Users.role_id' => '2',
'UserOrders.status' => '1',
),
'group' => array(
'Users.id',
),
'order' => array(
'SUM(UserOrders.quantity)' => 'desc',
),
'limit' => '200',
'contain' => array(
'UserOrders',
),
);
$data = $this->find('all', $options);
如果您是 CakePHP 的新手 2.x,我建议您查看 Dogmatic 以获取一些关于将 SQL 转换为 CakePHP 查询语法的想法。
所以我有这个查询,我正在尝试将其转换为蛋糕 ORM,但我不知道该怎么做
SELECT users.id, users.email, users.phone, SUM(user_orders.quantity ) , SUM(user_orders.total_price )
FROM `users`
JOIN `user_orders` ON users.id = user_orders.user_id
WHERE users.role_id =2
AND user_orders.status =1
GROUP BY users.id
ORDER BY SUM( user_orders.quantity ) DESC
LIMIT 200
在您的用户模型中:
$this->virtualFields = array(
'sum_user_orders_quantity' => 'SUM(UserOrders.quantity)',
'sum_user_orders_total_price' => 'SUM(UserOrders.total_price)',
);
$options = array(
'fields' => array(
'Users.id',
'Users.email',
'Users.phone',
'UserOrders.sum_user_orders_quantity',
'UserOrders.sum_user_orders_total_price',
),
'joins' => array(
array(
'conditions' => array(
'Users.id = UserOrders.user_id',
),
'table' => 'user_orders',
'alias' => 'UserOrders',
'type' => 'join',
),
),
'conditions' => array(
'Users.role_id' => '2',
'UserOrders.status' => '1',
),
'group' => array(
'Users.id',
),
'order' => array(
'SUM(UserOrders.quantity)' => 'desc',
),
'limit' => '200',
'contain' => array(
'UserOrders',
),
);
$data = $this->find('all', $options);
如果您是 CakePHP 的新手 2.x,我建议您查看 Dogmatic 以获取一些关于将 SQL 转换为 CakePHP 查询语法的想法。