2013-10-05 63 views
0

是否有一个函数可以根据请求对象生成相应的URL?CakePHP从请求参数创建URL

例如,如果请求参数值是:

params => array(
     'plugin' => 'plugin', 
     'controller' => 'foo', 
     'action' => 'bar', 
     'named' => array(), 
     'pass' => array() 
    ) 
    data => array() 
    query => array(
       'key' => 'val' 
     ) 
) 

然后,生成的网址:

http://domain.com/plugin/foo/bar?key=val

+3

你又忘了CakePHP的版本。此外,解释您尝试解决的实际问题总是有帮助的,这样一来,更容易找出适当的解决方案。这就是说:['Router :: reverse($ cakeRequestObject,true)'](http://api.cakephp.org/2.3/class-Router.html#method-Routerreverse)。 – ndm

+0

CakePHP版本2.3.4 – chrony

+0

Router :: reverse工作。如果你可以发表一个答案,所以我可以标记它:) – chrony

回答

4

这是否适合您的需求依赖的课程,但通常Router::reverse()能够从请求对象构建URL:

Router::reverse($cakeRequestObject, true) 

这很像Router::url(),但它会为你做所有肮脏的工作,包括查询值和删除不必要的参数。

0

只使用路由器::反向()这样的方法:

$url = Router::reverse($this->params); 
echo $url;