2

我只是好奇和困惑,因为我认为 Zend Framework 提供了构建 Web 应用程序时几乎所有可能需要的工具。

在 Zend Framework 中,参数通常在 URL 中传递/param_name/param_value,但是如果我想构建一个以 " ?param_name=param_value&param_name2=param_value2" 结尾的 URL,我似乎必须自己构建这个查询字符串并将其作为字符串传递:

<a href="<?php echo $this->url(array('controller'=>'index','action'=>'form'),NULL,TRUE)."?param_name=param_value&param_name2=param_value2";?>" title="">
    Some link
</a>

Zend Framework——在我看来相当复杂——是否有构建此类查询字符串的助手?我搜索了它并没有找到任何东西。

我正在寻找的是与此类似但更可靠的东西:

function query_string(array $params) {
    $keys = array_keys($params);
    $vals = array_values($params);
    $build_param_func = create_function('$a,$b','return $a."=".$b;');
    $query_string_parts = array_map($build_param_func, $keys, $vals);
    return '?'.implode('&amp;', $query_string_parts);
};

在此处查看其演示:http: //ideone.com/piCNj

如果 Zend Framework 没有这么简单的帮助器,有没有提供它的模块?还是完全由开发人员来创建这样的功能/助手?

感谢您的回答。

4

3 回答 3

3

使用http_build_query

于 2011-12-30T13:52:10.200 回答
3

PHP 具有执行此操作的本机函数,请参阅:http ://www.php.net/manual/en/function.http-build-query.php

于 2011-12-30T13:53:06.323 回答
2

如果使用 MVC,ZF 不会以传统方式使用查询字符串。

不过,您可以创建自己的助手:

http://blog.lysender.com/2009/04/creating-your-own-helper-zend-framework/

于 2011-12-30T13:52:33.290 回答