Normalize expression processing, allow them to be callables, everywhere, examples:
$select->with('top_sales', function (SelectQuery $select) {
// $select is a new SELECT query to be used for the WITH statement
// ... write your own $select query
});
Or:
$select->condition(function (Where $where) {
// ... do something with $where
});
Or:
$select->getWhere()->exists(function (SelectQuery $query) {
// $select is a new SELECT query to be used for the WITH statement
// ... write your own $select query
});
Or more generally, all expressions to be:
$select->expression(function (...$contextualParameters) {
// ... return some string or Expression instance
});
Query builder has been subjected to a major overhaul, it's now much more flexible and accepts arbitrary expressions and callables pretty much everywhere it's possible. This is fixed.
Normalize expression processing, allow them to be callables, everywhere, examples:
Or:
Or:
Or more generally, all expressions to be: