如何在控制器CakePHP中使用$ this-> Html-> url?

时间:2018-10-17 10:44:28

标签: url cakephp cakephp-2.0 router

我正在使用ajax从控制器获取数据。我需要从控制器传输url以通过ajax查看。

在控制器中,如果我使用:$article['url'] = '/articles/edit/4bce...';,则在单击时它将重定向到https://admin-trb-dev-web01.tmh-sd.com/articles/edit/4bce(找不到404)。

那是我不想要的页面。我要重定向的页面是:https://my-trb-dev-web01.tmh-sd.com/articles/edit/4bce...

所以我想使用$this->Html->url(array('controller' => 'WriteArticles','action' => 'edit','tuid' =>'4bce...'))。它在视图上运行良好,但在控制器中不起作用。

我尝试过下面的代码。但是输出不是:https://my-trb-dev-web01.tmh-sd.com/articles/edit/4bce...

    $article['url'] =  Router::url(array(
                'controller' => 'WriteArticles',
                'action' => 'edit',
                'tuid' =>  $article['Article']['tuid']).TRUE);
    $article['url'] = str_replace("\\/", "/", $article['url']);
    return json_encode($article);

输出: url: 'https://admin-trb-dev-web01.tmh-sd.com/articles/edit/4bce..' :(

1 个答案:

答案 0 :(得分:0)

  

它在视图上运行良好,但在控制器中不起作用。

因为您违反了MVC框架的原则。出于某些原因,各层是分开的。

控制器提供了完全符合您需要的redirect()。我强烈建议您阅读本文档中的基本教程之一,因为我认为您显然没有阅读该框架的基础知识:https://book.cakephp.org

There is also a chapter描述了如何正确执行JSON响应。