2012-07-18 2 views
0

WSDL (및 NuSOAP)을 통해 다른 서버에서 사용 가능한 제품 목록과 가격을 받아야합니다.모델에 비누 클라이언트를 사용합니다.

보기가 필요하지 않습니다 (생각한 컨트롤러가 없습니다). 그래서 테이블이없는 모델을 만듭니다 (서버 데이터를 저장하고 싶지 않기 때문에)

그리고 내 모델 파일의 시작 부분에 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; 
}