The way URL rules with optional parameters work seems strange from my point of view. Suppose we have a rule:
[ 'pattern' => 'post/<page:\d+>/<tag>', 'route' => 'post/index', 'defaults' => ['page' => 1], ],
I expect to get the
as an output from
Url::to('post/index', ['tag' => 'foo'])
since the “page” parameter should be default-initialized to “1”. Unfortunately rule doesn’t work without explicit “page” definition.
Is it by design or a bug? I don’t get it what’s the whole point of default parameters if I must always specify them explicitly. Why do the work only one way - while parsing and not also during creation?
Update: see corresponding issue