加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Zend URL参数 – 隐藏键和显示值

发布时间:2020-12-13 16:22:54 所属栏目:PHP教程 来源:网络整理
导读:使用Zend的默认路由,URL如下所示: www.domain.com/controller/action/key1/value1/key2/value2/key3/value3 每个Key和Value都作为一对存储在getParams()返回的数组中;在这个例子中: array(“key1”=“value1”,“key2”=“value2”,“key3”=“value3”)
使用Zend的默认路由,URL如下所示:

www.domain.com/controller/action/key1/value1/key2/value2/key3/value3

每个Key和Value都作为一对存储在getParams()返回的数组中;在这个例子中:

array(“key1”=>“value1”,“key2”=>“value2”,“key3”=>“value3”)

我希望参数URL看起来像:

www.domain.com/controller/action/value1/value2/value3

参数应该映射到这样的数组中.密钥应仅取决于值在URL中的位置.

array(0 =>“value1”,1 =>“value2”,2 =>“value3”)

我怎样才能做到这一点?

解决方法

你将需要在 ZF Routes上阅读一下.但基本上你需要做的是在你的Bootstrap.php中添加这样的东西:

protected function _initRoutes()
{
    $this->bootstrap('frontController');
    $frontController = $this->getResource('frontController');
    $router = $frontController->getRouter();

    $router->addRoute(
        'name_for_the_route',new Zend_Controller_Router_Route('controller/action/:key1/:key2/:key3',array('module' => 'default','controller' => 'theController','action' => 'theAction','key1' => NULL,'key2' => NULL,'key3' => NULL))
    );
}

NULL提供默认值.

然后在您的控制器中,您将执行以下操作:

$key1 = $this->_request->getParam('key1');
$key2 = $this->_request->getParam('key2');
$key3 = $this->_request->getParam('key3');

或使用您之前提到的getParams方法.

您还可以使用PHP的array_values()函数创建数字索引数组,如下所示:

$numericArray = array_values($this->_request->getParams());

养成使用路由的习惯是一个非常好的主意,因为它们提供了URI和调用控制器/操作之间的抽象.从本质上讲,使用路径可以实现的是面向对象的代码,这对于程序员来说仍然是完全有意义的,同时对用户来说也是完全合理的URI.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读