2014-07-10 115 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

相關問題