【问题标题】:Optional Route Params in SilexSilex 中的可选路由参数
【发布时间】:2014-04-02 04:51:35
【问题描述】:

我进行了一些查找,但似乎无法弄清楚如何在 Silex 的 URL 段中包含可选参数。所以我目前有这条路线:

    /{controller}/{method}/{param}

param 通配符是我想要的可选。所以这个模式会选择像

这样的 URL
    "Controller1/Method1" and "Controller2/Method2/Param"

建议?

【问题讨论】:

    标签: php routing silex


    【解决方案1】:

    只需为可能的最长 URL 设置处理器(包含所有部分,包括可选部分),如下所示:

    $app->get('/controller/{method}/{param}', 
        function($method, $param) {
          // called both by `/controller/some-method/some-param-string`,
          // `/controller/some-other-method`, and even `/controller`
    });
    

    默认情况下,空字符串被分配为与省略的 URL 部分相对应的参数值。但是您可以明确地覆盖它,如the doc 中所述:

    $app->get('/page/{pageName}', function($pageName) {
      // ...
    })->value('pageName', 'index');
    

    现在,当/page 被访问时,$pageName 被设置为'index'

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-06
      • 2018-02-09
      • 1970-01-01
      相关资源
      最近更新 更多