我用下面的代码数据,但总是空空的我用邮差试图测试后的数据的测试发布,但它没有工作,以下是测试代码,我写的,但它总是转到别的块,我试着写否则,但还是不行
class Api_home extends CI_Controller{
function __construct(){
parent::__construct();
$this->load->model('Api_model','api');
$this->load->helper('form');
$data= array(
'message' => ' Something went wrong',
'status' =>1,
'data' =>'',
);
}
public function test(){
$lang= $this->input->post['lang'];
if($lang=="ar"){
$this->data['message']= 'Arabic test';
}
//else if
// else if($lang=="en")
else{
$this->data['message']= 'English test';
}
$data['status']= 1 ;
echo json_encode($data,true);
die;
}
即使我发布ar,它也始终会转换为en版本,即使我对发布的数据执行var_dump也会给我false。请告知我如何对其进行排序
我总是得到以下响应
答案 0 :(得分:0)
幸运的是,我正在开发一个CI项目atm,因此无需花费太多精力进行测试。
首先,您在$lang = $this->input->post['lang'];
上使用了错误的括号,因此它并不高兴,但不会引发错误,不知道为什么。
您应该将其更改为:
$lang = $this->input->post('lang');
请注意弯曲的括号。
第二,我不确定它是否是有意的,但实际上您正在运行两个不同的$data
变量:
$this->data
和$data
。因此echo json_encode($data, true);
仅显示其中包含的内容,也许您是说echo json_encode($this->data, true);
最后,上面的代码片段缺少最后一个大括号,希望从源头上也不会丢失!
我希望这可以帮助您解决问题=)
答案 1 :(得分:0)
尝试返回json_output:
public function test(){
$lang= $this->input->post['lang'];
if($lang=="ar"){
$message= 'Arabic test';
return parent::json_output(['code' => '1', 'message' => 'Succesful', 'data' => $message]);
}
//else if
// else if($lang=="en")
else{
$message= 'English test';
return parent::json_output(['code' => '2', 'message' => 'Succesful', 'data' => $message]);
}
$data['status']= 1 ;
echo json_encode($data,true);
die;
}