AFAICT questo non è possibile (ancora) utilizzando la sintassi dell'array o le espressioni di confronto regolare, il codice responsabile della trasformazione gestisce solo campi singoli e array piatti, vedi
Fonte> \Cake \Database\Espressione\Confronto::_stringExpression()
Tuttavia, questo è molto bene possibile usando un'espressione di confronto di tuple, che supporta la gestione di insiemi di tuple fuori dagli schemi. Internamente viene utilizzato dalle associazioni per la gestione delle chiavi composte.
$fields = ['order_date', 'order_number'];
$types = ['date', 'integer'];
$values = [
['2016-03-11', 3455453],
['2016-03-18', 83545454],
['2016-06-17', 5354544]
];
$query->where(
new \Cake\Database\Expression\TupleComparison($fields, $values, $types, 'IN')
);
Fonte> \Cake\Database \Espressione\Confronto tuple