Да, вы правы.Экранирующие скобки не реализованы в DSQL, а не в Data.Вы можете обойти эту проблему, используя метод expr()
напрямую и передав {DD}
в качестве параметра (который не будет заменен снова).
Таким образом, он работает для меня:
$expr = $model->expr('REPLACE([dnum], [], LPAD(DAY([issue_date]), 2, \'0\'))',[
'{DD}',
]);
$f = $model->addExpression('calc_document_number',
[$expr, 'type' => 'string', 'read_only' => true]);
// here is no need to set type=string and read_only=true because expression field will automatically be readonly and with string type
echo $m->action('select')->getDebugQuery();
Также создан тикет на будущую ссылку: https://github.com/atk4/dsql/issues/144