我正在开发一个Cakephp 2.6.0
在服务器端和PhoneGap 5.4.1
客户端使用的应用程序,JSON
作为访问服务器端的中介。
我想问是否可以加载 的内容,使用 JavaScriptviews
将它们发送到客户端并显示它们?JSON
如果是,我该怎么做?任何帮助将不胜感激。
我正在开发一个Cakephp 2.6.0
在服务器端和PhoneGap 5.4.1
客户端使用的应用程序,JSON
作为访问服务器端的中介。
我想问是否可以加载 的内容,使用 JavaScriptviews
将它们发送到客户端并显示它们?JSON
如果是,我该怎么做?任何帮助将不胜感激。
我认为最好的方法是使用您的 Cordova / PhoneGap 应用程序作为您的客户端(视图)和 CakePHP 作为服务器端(模型和控制器)。从您的 PhoneGap 应用程序中,您可以通过 ajax 与您的 CakePHP 应用程序进行通信,以共享数据或执行一些 CRUD 操作。
我尝试提供一些灵感,并向您展示如何通过将 userId 从您的科尔多瓦应用程序传递给 cakephp 来获取用户数据:
重要提示:我在此示例中跳过了身份验证部分。有关更多信息,请参阅CookBook 2.x - 身份验证
科尔多瓦/Phonegap:
document.addEventListener('deviceready', onDeviceReady, false);
function onDeviceReady() {
$.ajax({
url : 'www.yourUrl.com/YourAppName/users/view/1', // 1 => userId
data : {},
dataType : 'json',
success : function(result) {
// do something with the result
// e.g. access user name: result['User']['name'];
},
error : function(xhr, status, err) {
// do something on error
}
});
}
蛋糕PHP:
class UsersController extends AppController {
public $name = 'Users';
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow('view');
}
public function view($userId = null){
$this->autoRender = false;
// use $this->Auth->User('id') insted of $userId
// as soon as you have implimented the user authentification
$user = $this->User->findById($userId);
echo json_encode($user);
die;
}
}
编辑:
如果您想以 json 格式获取视图内容,请查看 derEuroMark 博客中的此示例。他创建了一个 AjaxView,负责将内容映射到 JSON 结构,并通过“ajax”子文件夹 (View/ControllerName/ajax/favorites.ctp) 自动尝试仅在 ctp 中呈现简单的 HTML 模板代码。链接:AjaxView