我已经添加了路线:
$router->add('/linkToAction/{elementId}', array(
'controller' => 'MyController',
'action' => 'myAction',
'params' => array('elementId' => 1),
))->setName('routeName');
然后我将其与/linkToAction/12345
的网址一起使用,它将运行myAction
MyController
。
但后来我尝试使用像/linkToAction
这样的网址,无法找到路线。因此,我不会在myAction
中使用MyController
false
来调用elementId
。{/ p>
如何在路线中使用可选参数?
答案 0 :(得分:0)
尝试使用正则表达式定义它,这将允许参数不存在。
$router->add('/linkToAction(?:\/(.*))?', array(
'controller' => 'MyController',
'action' => 'myAction',
'params' => array('elementId' => 1),
))->setName('routeName');
修改强>
我不是100%肯定Phalcon如何处理路径中的正则表达式,所以如果这不起作用,请尝试:
$router->add('/linkToAction(?:\/?(.*)?)', …
如果在括号外忽略可选修饰符?
,则会失败。第二个人拥有一切自足。