【发布时间】:2012-04-04 15:55:47
【问题描述】:
我们有一个在 2.0 上运行的 cakephp 应用程序,我们似乎在使用 Firefox 时遇到了一些编码问题。
我们访问的 URL 是 /newcms/core/users/index/conditions[User][group_id]:6 以在 out cms 系统中应用过滤器。
除了 FireFox 之外,我们在请求对象上得到以下内容
[params] => Array
(
[plugin] => core
[controller] => users
[action] => newcms_index
[named] => Array
(
[conditions] => Array
(
[User] => Array
(
[group_id] => 6
)
)
)
[pass] => Array
(
)
[prefix] => newcms
)
这是正确的,一切正常,如果我们在 FireFox 中访问相同的 URL,我们会得到
[params] => Array
(
[plugin] => core
[controller] => users
[action] => newcms_index
[named] => Array
(
[conditions%5BUser%5D%5Bgroup_id%5D] => 6
)
[pass] => Array
(
)
[prefix] => newcms
)
我已尝试对命名条件值进行 URL 编码,但没有成功。
有什么建议吗?
【问题讨论】:
-
为什么将方括号作为 url 参数的一部分?当然,它正在获取 URL 编码。为什么不使用命名参数?
-
@Barry,他正在使用命名参数,但他试图让它们嵌套。我不确定这是否可能。
-
@bfavaretto 这不是真的,他直接将它们作为 URL 的一部分传递。不好。
-
@bfavaretto 在 Cake 2 中添加了嵌套命名参数,所以是的,这是可能的。虽然我同意在 url 中传递条件是一个坏主意,但看起来这可能是一个错误。
-
@Barry: bfavaretto 是正确的——他使用的是命名参数——因此是 some:something 在 URL 中。
标签: firefox url cakephp encoding named-parameters