好吧,我不是100%确定我明白你在做什么,所以下面是一个聪明的词,以防万一:Cake和JMVC都是全面的MVC框架。如果您试图将它们组合为一个有凝聚力的平台来构建您的应用程序,我强烈建议您查看您的方法/平台/等。
此外 - 我不是jmvc中的任何方式的专家,所以我我只是假装在jmvc中处理来自Cake的响应是完全不可能的,因为某些奇怪的原因。对于这个记录,想想Cake的回应是这样的:
{ "Model" :
[{
'id': 1,
'name' : 'Justin Meyer',
'birthday': '1982-10-20'
},
{
'id': 2,
'name' : 'Brian Moschel',
'birthday': '1983-11-10'
}]
}
Cake已经有了全面的REST服务支持,至少从Cake 1.2开始。您感兴趣的库是HttpSocket。至于json编码和服务响应,Request Handling包括响应所有请求,内容类型,解码和编码json等方式。最后,内置的Set实用程序几乎可以肯定涵盖您需要的任何数组操作一两行。
您感兴趣的功能非常基础,并没有太多变化。我敢打赌,你已经发现的许多(相当简单的)解决方案可能仍然有效,也许稍微调整一下。
对于几乎任何基本的服务端点,您可能会创建一个控制器(而不是AppController - 这是应用程序范围内的,因此您不能直接调用它)方法,因为Cake将controller/action路由到您的url中:
蛋糕从不同的应用程序消耗服务应该是这样的:
http://cakeproject/collect/getInfo
class CollectController extends AppController {
public function getInfo($array = null) {
App::uses('HttpSocket', 'Network/Http');
$http = new HttpSocket();
$http->get('http://jmvcproject/controller/action', $array);
// ...etc.
}
蛋糕从同一个控制器/动作提供服务于不同的应用程序,简直是:
public function getInfo($array = null) {
$results = $this->Collect->find('all', $array);
// ...fetch the results
}
或者你也可以用foreach($this->data as $data) { ...
来循环该数组以删除类名。但是如果你的数据将包含相关的模型等,Set可能是最通用和最有弹性的解决方案。
无论如何,HTH
非常感谢您回答我的问题。解释我的不寻常的方法:它更多的是一个实际的准备工作(为此我需要JavaScriptMVC)和做一份工作(为此我需要蛋糕)的实践性质。不要为了我不得不承认的一个吝啬。此外,JavaScriptMVC可以用作编程数据连接jQuery插件的工具。在这种情况下,我只是尝试为嵌套的图像应用程序构建一个接口。 – 2012-08-15 00:01:06