2012-07-18 115 views
0

我應該通過WSDL(和NuSOAP)從另一個服務器獲取可用產品列表及其價格。在模型中使用soap客戶端

沒有意見是必要的(也沒有控制器,我認爲);所以我創建了一個沒有表的模型(因爲我不想存儲服務器數據)

並在我的模型文件的開頭使用App:import('Vendor', 'path_to_nusoap.php')

讓我們來看看我的模型:

<?php 
App::uses('AppModel', 'Model'); 
App::import('Vendor', 'nusoap' . DS . 'nusoap.php'); 
/** 
* MyModel Model 
* 
*/ 
class MyModel extends AppModel { 
    public $useTable = false; 

    public $client = new nusoap_client('url', 'WSDL'); 

    public function products(){ 
     $products = $client->call('getProductsList'); 
     //// 
     return $products; 
    } 
    public function prices(){ 
     $prices = $client->call('getPricesList'); 
     //// 
     return $prices; 
    } 
} 

但它會導致錯誤(在該行:public $client

現在,問題:

  1. 如何解決這個錯誤? (使用承包商功能?)
  2. 我錯了在模型上使用這個函數嗎? (而不是控制器)

對不起,我可怕的英語。 謝謝。

回答

0

您無法在方法範圍外創建對象!

使用一個構造函數:

public $Client; 

public function __construct() { 
    $this->Client = new nusoap_client('url', 'WSDL'); 

} 

public function products() { 
    $products = $this->Client->call('getProductsList'); 
    return $products; 
}