[英]How to load model with Codeigniter Webservice - Nusoap Server?
我正在尝试将模型加载到Web服务(Nusoap),如下所示:
控制器:
class Addition extends CI_Controller{
public function Addition(){
parent::__construct();
$ns = base_url().'addition/';
$endpoint = base_url().'addition/';
$this->load->library("nusoap_library"); // load nusoap toolkit library in controller
$this->nusoap_server = new soap_server(); // create soap server object
$this->nusoap_server->configureWSDL("SMS SOAP", $ns, $endpoint); // wsdl cinfiguration
$this->nusoap_server->wsdl->schemaTargetNamespace = $ns; // server namespace
// REGISTER FUNCTIONS
$input_array = array ('var1' => "xsd:string", 'var2' => "xsd:string"); // "addnumbers" method parameters
$return_array = array ("var3" => "xsd:int", 'var4' => "xsd:string");
$this->nusoap_server->register('send', $input_array, $return_array, "urn:SOAPServerWSDL", "urn:".$ns."send", "rpc", "encoded", "My Addition WS");
}
function index(){
function send($var1, $var2){
$this->load->model('mymodel'); // THIS IS MY MODEL
$data['var1'] = $this->mymodel->addnumbers($var1, $var2);
$data['var2'] = "yes";
return $data;
}
$this->nusoap_server->service(file_get_contents("php://input"));
}
}
问题是,如果我取出模型并直接添加,它将可以正常工作,但是对于模型,它什么也不返回。
任何帮助将不胜感激。
我想我解决了自己的问题。
显然,您不能直接调用模型。 一种实现方法如下:
class Addition extends CI_Controller{
public function Addition(){
parent::__construct();
$ns = base_url().'addition/';
$endpoint = base_url().'addition/';
$this->load->library("nusoap_library"); // load nusoap toolkit library in controller
$this->nusoap_server = new soap_server(); // create soap server object
$this->nusoap_server->configureWSDL("SMS SOAP", $ns, $endpoint); // wsdl cinfiguration
$this->nusoap_server->wsdl->schemaTargetNamespace = $ns; // server namespace
// REGISTER FUNCTIONS
$input_array = array ('var1' => "xsd:string", 'var2' => "xsd:string"); // "addnumbers" method parameters
$return_array = array ("var3" => "xsd:int", 'var4' => "xsd:string");
$this->nusoap_server->register('send', $input_array, $return_array, "urn:SOAPServerWSDL", "urn:".$ns."send", "rpc", "encoded", "My Addition WS");
}
function index(){
function send($var1, $var2){
$CI =& get_instance();
$CI->load->model('mymodel'); // THIS IS MY MODEL
$data['var1'] = $CI->mymodel->addnumbers($var1, $var2);
$data['var2'] = "yes";
return $data;
}
$this->nusoap_server->service(file_get_contents("php://input"));
}
我知道这可能不是最佳解决方案,但它可以完美工作,并且您可以使用带有Nusoap的Codeigniter Framework加载任何模型。
希望这对将来有所帮助。
如果有人有更好的方式加载模型,请告诉我们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.