I want to add some conditions on a model's join.
this is what I tried and nothing changed on the result:
Members::find('all', [
'fields' => ['name', 'Count(Orders.id)'],
'with' => 'Orders',
// 'joins' => [
// 'Orders' => 'Orders.status = delivered'
// ]
]);
this is my working example query:
SELECT name, COUNT(orders.id) FROM members
LEFT JOIN orders ON orders.member_id = members.id AND orders.status = 'delivered'
GROUP BY member_id
Edit:
I also tried this approach based on this answer
$joins = array();
$joins[] = new \lithium\data\model\Query(array(
'source' => 'orders',
'type' => 'LEFT',
'constraint' => array('Orders.status' => 'delivered'),
));
Members::find('all', [
'fields' => ['name', 'Count(Orders.id)'],
'with' => 'Orders',
'joins' => $joins
]);
but the created query doesn't contain defined joins parameters ('Orders.status' => 'delivered')