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. 在模型上使用这个功能我错了吗?(而不是控制器)

对不起我糟糕的英语。谢谢。

4

1 回答 1

0

您不能在方法范围之外创建对象!

使用构造函数:

public $Client;

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

}

public function products() {
    $products = $this->Client->call('getProductsList');
    return $products;
}
于 2012-07-18T10:56:07.230 回答