cakephp并获得请求

时间:2009-04-27 18:17:18

标签: cakephp

cakephp如何处理get请求?例如,它将如何处理这样的请求...... http://us.mc01g.mail.yahoo.com/mc/welcome?.gx=1&.rand=9553121_pg=showFolder&fid=Inbox&order=down&tt=1732&pSize=20&.rand=425311406&.jsrand=3

“mc”会成为控制者并且“欢迎”成为行动吗? 如何处理其他信息?

5 个答案:

答案 0 :(得分:6)

另请注意,您可以使用Cake 1.2中的命名参数。命名参数是键:值顺序,因此url http://somesite.com/controller/action/key1:value1/key2:value2会给aa $ this-> params ['named']数组('key1'=>'value1','key2'=>'任何控制器内的value2')。

如果您使用CNN.com样式的GET请求(http://www.cnn.com/2009/SHOWBIZ/books/04/27/ayn.rand.atlas.shrugged/index.html),则参数按照$ this-> params ['pass'中的外观顺序(2009,SHOWBIZ,书籍等) ]数组,从0开始索引。

我强烈推荐使用命名参数,因为您可以稍后通过传递参数来添加功能,而无需担心订单。我相信你也可以改变命名参数分离键(默认情况下,它是':')。

因此它与“传统”GET参数(page.php?key1 = value1& key2 = value2)略有不同。但是,您可以在应用程序中轻松添加一些逻辑,通过绑定应用程序解析请求的方式自动将传统参数解析为数组。

答案 1 :(得分:2)

CakePHP使用路由来确定这一点。默认情况下,路由按您的描述工作。 '?'之后的余数是查询字符串,它可以在控制器的$this->params['url']中找到,解析为关联数组。

答案 2 :(得分:1)

因为我在搜索时发现了这一点,即使它有点旧了。

$this->params['url']

持有GET信息。

我已经测试但它确实有效。 Cakephp书中的页面为'url'部分下的this link。它甚至给出了一个与原问题中的例子非常相似的例子。这也适用于我正在运行的CakePHP 1.3。

答案 3 :(得分:0)

它并没有真正使用典型的get。

如果传递那个长长的疯狂字符串,什么都不会发生。它需要这种格式的数据:site.com/controller/action/var1/var2/var ....

答案 4 :(得分:0)

有人能澄清正确的答案吗?在我看来,spoulson和SeanDowney的陈述相互矛盾?

是否有人能够使用最新版本的CakePHP并获取以下网址:

<强> http://www.domain.com/index.php/oauth/authorize?oauth_version=1.0&oauth_nonce=c255c8fdd41bd3096e0c3bf0172b7b5a&oauth_timestamp=1249169700&oauth_consumer_key=8a001709e6552888230f88013f23d5d004a7445d0&oauth_signature_method=HMAC-SHA1&oauth_signature=0bj5O1M67vCuvpbkXsh7CqMOzD0%3D

oauth是控制器并且授权成为一个方法,因为它能够在最后接受GET请求吗?