如何使用一条路线进行不同的通话

时间:2014-05-13 07:33:12

标签: url parameters routing phalcon optional

我已经添加了路线

$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>

如何在路线中使用可选参数?

1 个答案:

答案 0 :(得分:0)

尝试使用正则表达式定义它,这将允许参数不存在。

$router->add('/linkToAction(?:\/(.*))?', array(
    'controller' => 'MyController',
    'action' => 'myAction',
    'params' => array('elementId' => 1),
))->setName('routeName');

修改

我不是100%肯定Phalcon如何处理路径中的正则表达式,所以如果这不起作用,请尝试:

$router->add('/linkToAction(?:\/?(.*)?)', …

如果在括号外忽略可选修饰符?,则会失败。第二个人拥有一切自足。