url - 如何在控制器 CakePHP 中使用 $this->Html->url?
问题描述
我正在使用 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..'
:(
解决方案
它在视图上运行良好,但在控制器中,它不起作用。
因为您违反了MVC框架的原则。分层是有原因的。
控制器提供了完全符合您要求的 redirect()。我强烈建议你从文档中做一个基本教程,因为我认为很明显你还没有阅读过框架的基础知识:https ://book.cakephp.org
还有一章描述了如何以正确的方式进行 JSON 响应。
推荐阅读
- binary - 当您没有标签时,是否可以使用 CNN 分类器将文本行图像识别为英语和乌尔都语?
- file-upload - 无法使用 Jmeter 中的上传文件上传图像 - 响应出现错误
- python - Python中的Matlab fmincon等价物
- python - 从 pandas 列中提取正则表达式匹配并用作访问列表元素的索引
- swift - 内存问题:实时眼睛定位
- python - 如何使用箭头获取从月初到今天的时间范围?
- python - 如何使用 CVXPY 扰动数据进行二次优化
- time-complexity - 以排序方式遍历堆与 BST
- dictionary - 如何使用 gradle 在 marklogic 中加载自定义字典?
- ios - 如何去除视频中的黑色空间?斯威夫特