繁体   English   中英

加载Cakephp的视图并将其发送到我的Phonegap项目

[英]Loading the views of Cakephp and send them to my Phonegap Project

我正在使用在服务器端使用Cakephp 2.6.0和在客户端使用PhoneGap 5.4.1的应用程序,并且使用JSON作为访问服务器端的中介。

我想问问是否有可能加载views的内容,使用JSON将其发送到客户端并使用JavaScript显示它们? 如果是,我该怎么办? 任何帮助将不胜感激。

我认为最好的方法是将Cordova / PhoneGap应用程序用作客户端(视图),将CakePHP用作服务器端(模型和控制器)。 从PhoneGap应用程序,您可以例如通过ajax与CakePHP应用程序进行通信,以共享数据或执行某些CRUD操作。

我尝试给出一些启发,并向您展示如何通过将Cordova应用程序中的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
      }
   });
}

CakePHP:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM