簡體   English   中英

如何在Zend Framework中獲取奇數個參數?

[英]How to get odd numbers of parameters in Zend Framework?

大家問候

使用request對象,我無法獲得此URI中的唯一值:

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

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

輸出:

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

鑰匙不見了。

問題本身很簡單,我可以自己解析URI,但實際上我希望ZF做到這一點(對嗎?)。 我找不到使用Google或SO的提示。

我如何才能獲得沒有價值的鑰匙?

默認情況下,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

嘗試通過添加必填字段來修改路線。

那么它看起來像什么路線? 如果它是默認路由,則應該這樣,因為它依賴於解析規則key/value

如果它不遵循該簡單規則,那么您需要創建一個新路由來匹配該特定URI的規則。

通常,如果您認為自己的密鑰沒有值,則需要在路由中為此值提供默認值。

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

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

如果您想像在您的示例中那樣,則必須自己制定路線。

默認情況下,將使用rails樣式的URL解析。 因此,出於您的目的,您需要:

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

不過,您可以配置路由器,這樣就不必使用key1部分。 參見文檔:

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

如下所示在route.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)訪問操作中的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM