2009-04-27 86 views

回答

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参数来添加功能,而不必担心顺序。我相信你也可以改变命名参数分隔键(默认情况下它是':')。

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

2

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

0

它并不真正使用在典型以来得到。

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

0

有人可以澄清正确的答案吗?在我看来,斯波尔森和肖恩多尼的言论是相互矛盾的?

会有人能够使用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请求吗?

1

因为我在搜索时发现了这个,尽管它有点老了。

$this->params['url'] 

持有GET信息。

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