我对 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?
提前谢谢大家。