2014-07-10 112 views
-1

我一直在为浏览器开发CakePHP应用程序,但现在需要支持一些用于提供android和iOS应用程序的功能,并且我无法获得有关如何获取的可靠信息它正在运行。因此,例如,这是一个必须支持移动应用的功能:CakePHP应用程序作为移动应用程序的后端

function add() { 

    if (!empty($this->data)) { 
     $this->Customer->create(); 
     if ($this->Customer->save($this->data)) { 
      $this->Session->setFlash(__('Customer is saved'), 'positive_notification'); 
      $this->redirect(array('controller'=>'customers', 'action' => 'index')); 
     } else { 
      $this->Session->setFlash(__('Customer was not saved. Please try again'), 'negative_notification'); 
     } 
    } 
} 

所以,按照我的理解,该函数调用可以通过POST从一个应用程序(纠正我,如果我错了)来完成。但是,应根据设备给出不同的回报。

或者为不同的客户端展示不同的功能会更好吗?

任何帮助,指导或建议都非常受欢迎。

+0

_What_相当多的资源,正是你需要返回到_which_设备类型和_why_?现在你的问题很不明确。 – ndm

+0

基本上我需要建议采取什么样的方式来支持移动应用程序。它是否通过REST?还是有另一种方式?对于不同的回报应该采取不同的行动还是双腿? – Domas

+1

为什么你会对待任何不同的移动应用?是什么让他们的HTTP请求与其他用户代理的请求不同?不知道你到底需要做什么以及为什么要回答你的问题是不可能的。 – ndm

回答

3

根据您发布的功能:

  • 的功能将被认为根据接收到的数据保存的客户,并返回响应
  • ,你将无法使用$this->redirectsetFlash
  • 您将(可能)返回JSON响应。

功能可能类似

public function add() { 
    $response = array(
     'status' => false, 
     'message' => __('Customer was not saved. Please try again') 
    ); 

    if (!empty($this->data)) { 
     $this->Customer->create(); 
     if ($this->Customer->save($this->data)) { 
      $response = array(
       'status' => true, 
       'message' => __('Customer is saved') 
      ); 
     } 
    } 
    $this->set(array(
     'response' => $response , 
     '_serialize' => array('response') 
    )); 
} 

如果你想有同样的CakePHP应用的功率都一个网站和一个API,你可以使用不同的控制器为每个:一个客户控制器为网站和一个 APIC的APICustomer控制器工作不同。

根据您的需要,还可以有两个共享模型的CakePHP应用程序。

有关于如何使搭载CakePHP的一个API,如this onethis one

+0

谢谢,这就是我所需要的。希望这对未来的某个人也会有所帮助。 – Domas

相关问题