【发布时间】:2011-01-20 18:28:20
【问题描述】:
我是 CakePHP 的新手,正因为如此,我曾经用 Zend 框架做的一些基本的事情我被 Cake 打败了。
我正在做一个项目,我必须将命名参数传递给控制器/动作。设置路由和传递参数相当简单,我的问题是当参数是一个urlencoded url时。
例如:http://www.cakephp.com/controller/action/http%3A%2F%2Fwww.google.com 不管控制器和动作设置如何,都会抛出 404,但通过 /controller/action/http://www.google.com 以某种方式工作,唯一的问题是它识别http 作为命名参数。在另一种方式中,如果我执行 /controller/action?url=http://www.google.com 它将起作用。
我为此使用的解决方法是将值作为 base64 编码的字符串传递,但它带来了一些限制。例如,如果是 API,则无法保证使用该 API 的系统可以将 base64 编码为字符串。
无论如何,最好的解决方案仍然是将 url 编码的字符串传递给命名参数。问题是,为什么 CakePHP 不接受 urlencoded 字符串作为参数,为什么会抛出 404?
提前谢谢大家。
【问题讨论】:
标签: string cakephp urlencode param