Excuse me, i got problem in using postman to getting data using xml
I confuse how it work, can anyone show me where my fault? Attachment 6994 not found.
ServiceController.php
<?php
class ServiceController extends YiiWebservice{
public function actionDataxml() {
$xml = $this->openXMLWriter();
$xml->startElement("DataNegara");
$xml->writeElement("Nama","Indonesia");
$xml->writeElement("Benua","Asia");
$xml->endElement();
$xml->endDocument();
$this->displayXML($xml);
}
public function actionText() {
echo "Tampilkan text ini";
}
public function actionPost() {
$dataXml = $this->xml;
$this->forceXMLExistence();
$xml = $this->openXMLWriter();
$xml->startElement("PesanWeekend");
$xml->writeElement("untuk",$dataXml->to);
$xml->writeElement("dari",$dataXml->from);
$xml->writeElement("subjek",$dataXml->heading);
$xml->writeElement("pesan",$dataXml->body);
$xml->endElement();
$xml->endDocument();
$this->displayXML($xml);
}
public function actionSavenegara() {
$dataXml = $this->xml;
$this->forceXMLExistence();
$xml = $this->openXMLWriter();
$model = new Negara;
if(empty($dataXml->NamaNegara)) {
echo $this->getCustomError("Field NamaNegara tidak boleh kosong");
return;
}
if(empty($dataXml->BenuaNegara)) {
echo $this->getCustomError("Field BenuaNegara tidak boleh kosong");
return;
}
$model->nama_negara= $dataXml->NamaNegara;
$model->benua_negara= $dataXml->BenuaNegara;
if($model->save()) {
echo $this->getSuccess(Yii::app()->db->getLastInsertID());
}
}
public function actionFilterNegaraByBenua() {
$dataXml = $this->xml;
$xml = $this->openXMLWriter();
$this->forceXMLExistence();
$dataNegara = Negara::model()->findAll(
'benua_negara=:nama_benua',
array(':nama_benua'=>$dataXml->NamaBenua));
$xml->startElement('ListNegara');
$xml->writeAttribute("TotalData",count($dataNegara));
foreach ($dataNegara as $negara) {
$xml->startElement('Negara');
$xml->writeElement("ID",$negara->id_negara);
$xml->writeElement("NamaNegara",$negara->nama_negara);
$xml->writeElement("BenuaNegara",$negara->benua_negara);
$xml->endElement();
}
$xml->endElement();
$xml->endDocument();
$this->displayXML($xml);
}
public function actionFilternegara(){
$namaBenua=isset($_GET['benua'])?$_GET['benua']:'';
$xml=$this->openXMLWriter();
$dataNegara=Negara::model()->findAll(
'benua_negara=:nama_benua',
array(':nama_benua'=>$namaBenua));
$xml->startElement('ListNegara');
$xml->writeAttribute("TotalData",count ($dataNegara));
foreach($dataNegara as $negara) {
$xml->startElement('Negara');
$xml->writeElement("ID",$negara->id_negara);
$xml->writeElement("NamaNegara",$negara->nama_negara);
$xml->writeElement("BenuaNegara",$negara->nama_benua);
$xml->endElement();
}
$xml->endElement();
$xml->endDocument();
$this->displayXML($xml);
}
}
?>
YiiWebservice.php
<?php
class YiiWebservice extends Controller {
public $xml;
public function init() {
header("Content-Type:text/xml");
try{
$this->xml=@new SimpleXMLElement($this->getXMLinput());
} catch (Exception $exception) {
}
}
function getXMLinput() {
return @file_get_contents("php://input");
}
public function displayXML($xmlData = NULL) {
if ($xmlData != NULL) {
echo $xmlData->outputMemory();
}
}
public function openXMLWriter() {
$xml = new XMLWriter();
$xml->openMemory();
$xml->startDocument('1.0', 'utf-8');
return $xml;
}
public function forceXMLExistence() {
if($this->xml) {
$xml=$this->openXMLWriter();
$xml->startElement("Error");
$xml->writeElement("ErrorMessage","Please enter parameter xml");
$xml->endElement();
$xml->endDocument();
$this->displayXML($xml);
die();
}
}
public function getSuccess($val='') {
$xml = $this->openXMLWriter();
$xml->startElement("Result");
$xml->writeElement("isSuccess","true");
$xml->startElement("resultValue");
$xml->writeRaw($val);
$xml->endElement();
$xml->endElement();
$xml->endDocument();
return $this->displayXML($xml);
}
public function getCustomError($val='') {
$xml = $this->openXMLWriter();
$xml->startElement("Result");
$xml->writeElement("isSuccess","false");
$xml->startElement("errorMessage");
$xml->writeRaw($val);
$xml->endElement();
$xml->endElement();
$xml->endDocument();
return $this->displayXML($xml);
}
public function actionGetlistnegara() {
$xml = $this->openXMLWriter();
$dataNegara = Negara::model()->findAll();
$xml->startElement("ListNegara");
$xml->writeAttribute("TotalData", count($dataNegara));
foreach ($dataNegara as $negara) {
$xml->startElement("Negara");
$xml->writeElement("ID",$negara->id_negara);
$xml->writeElement("NamaNegara",$negara->nama_negara);
$xml->writeElement("BenuaNegara",$negara->benua_negara);
$xml->endElement();
}
$xml->endElement();
$xml->endDocument();
$this->displayXML($xml);
}
}
?>