为什么Cakephp Html :: link()不像我期望的那样工作?

时间:2014-04-01 18:18:51

标签: cakephp

使用此代码:

$sitemap = 4;

$link = $this->Html->link( $sitemap . '.xml', null, 
    array('plugin' => $this->request->plugin, 
        'controller' => $this->request->controller, 
        'action' => 'view', 
        'admin' => false));

我希望得到一个如下所示的链接:

http://www.domain.com/vreb_listings/vreb_listing_feeds/view/4.xml

相反,我明白了:

/admin/vreb_listings/vreb_listing_feeds/4.xml

是什么给出的?动作=>视图无效,因为视图未显示在网址中,而admin =>当管理员显示时,虚假也无法正常工作。此代码位于管理区域中。

我甚至没想过如何在网址中包含完整的域路径。另外,我希望标题文本与网址相同。

1 个答案:

答案 0 :(得分:2)

根据docs第二个参数是网址,因此在您的代码中应该是

$link = $this->Html->link( $sitemap . '.xml',  
                           array('plugin' => $this->request->plugin, 
                                 'controller' => $this->request->controller, 
                                 'action' => 'view', 
                                 'admin' => false));

(删除null第二个参数)

哦,对于标题文本, 是第三个参数,所以

$link = $this->Html->link( $sitemap . '.xml',  
                           array('plugin' => $this->request->plugin, 
                                 'controller' => $this->request->controller, 
                                 'action' => 'view', 
                                 'admin' => false),
                           array('title' => $sitemap.'.xml'));

应该做的伎俩