【问题标题】:How to get odd numbers of parameters in Zend Framework?如何在 Zend Framework 中获取奇数个参数?
【发布时间】:2010-02-05 15:06:51
【问题描述】:

大家好

使用 request 对象,我无法获得此 URI 中的唯一值:

http://mydomain.com/controller/action/value1

使用$request->getParams() 不会返回value1

输出:

array([controller] => 'controller', [action] => 'action')

钥匙不见了。

问题本身很简单,我可以自己解析 URI,但实际上我希望 ZF 来做(对吗?)。我找不到使用 google 或 SO 的提示。

我如何获得没有值的键?

【问题讨论】:

  • 所以路由是诀窍;)谢谢大家,我勾选了最容易理解的答案。

标签: php zend-framework parsing parameters uri


【解决方案1】:

默认情况下,Zend Framework 期望 URL 中的参数采用/key/value 的形式。试试这个:

http://mydomain.com/controller/action/key1/value1

print_r($request->getParams());

结果是:

Array
(
    [controller] => controller
    [action] => action
    [key1] => value1
)

编辑:正如其他人所说,如果你想坚持使用http://mydomain.com/controller/action/value1,你应该看看Zend_Controller_Router

【讨论】:

    【解决方案2】:

    尝试通过添加所需字段来修改您的路线。

    【讨论】:

      【解决方案3】:

      嗯,它看起来像映射到的路线是什么?如果它是默认路由,那么这应该是可以预料的,因为它依赖于解析规则key/value

      如果它不遵循那个简单的规则,那么你需要创建一个新的路由来匹配那个特定 URI 的规则。

      一般来说,如果您认为您的键没有值,则需要在路由中为该值提供默认值。

      【讨论】:

        【解决方案4】:

        默认情况下,将使用 rails 样式的 URL 解析。因此,出于您的目的,您会想要:

        http://mydomain.com/controller/action/key1/value1
        

        您可以配置路由器,这样您就不必使用 key1 部分。请参阅文档:

        http://framework.zend.com/manual/en/zend.controller.router.html

        【讨论】:

          【解决方案5】:

          在 routes.ini 文件中按如下方式定义您的路由(如果 value1 是十进制值,如果不是,请更改正则表达式以满足您的需要):

          routes.your_route.route = "controller/action/:value1"
          routes.your_route.defaults.controller = "controller"
          routes.your_route.defaults.action = "action"
          routes.your_route.reqs.value1 = "\d+"
          

          然后您可以使用 getParam(s) 访问您的操作中的值。

          【讨论】:

            【解决方案6】:

            http://mydomain.com/controller/action/param/value1/

            array([controller] => 'controller', [action] => 'action', [param] => 'value1');
            

            如果你想在你的例子中这样,你必须制定自己的路线。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2012-11-03
              • 1970-01-01
              • 2011-07-08
              • 2011-02-04
              • 1970-01-01
              • 1970-01-01
              • 2012-11-07
              • 1970-01-01
              相关资源
              最近更新 更多