我正在使用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..'
:(
答案 0 :(得分:0)
它在视图上运行良好,但在控制器中不起作用。
因为您违反了MVC框架的原则。出于某些原因,各层是分开的。
控制器提供了完全符合您需要的redirect()。我强烈建议您阅读本文档中的基本教程之一,因为我认为您显然没有阅读该框架的基础知识:https://book.cakephp.org
There is also a chapter描述了如何正确执行JSON响应。