我在这里做codeigniter,这里有一个数组,在这个数组中 studentAbsentId 我存储在json字符串中,就像这样 [studentAbsentId] => [" 1"" 2"] ,
我的控制器
public function admin_getabsentlist()
{
$data = array(
"schoolId" => $_POST['schoolName'],
"classId" => $_POST['className'],
"sectionId" => $_POST['sectionName'],
"absentDate" => date("Y-m-d", strtotime($_POST['absentDate']))
);
$absentresponse= $this->Admin_attendance_model->admin_options_listdisplay($data);
}
我的模特
public function admin_options_listdisplay($params)
{
$this->db->select('*');
$this->db->where('status !=', '1');
$this->db->where('schoolId =', $params['schoolId']);
$this->db->where('classId =', $params['classId']);
$this->db->where('sectionId =', $params['sectionId']);
$this->db->where('studentAbsentDate =', $params['absentDate']);
return $this->db->get('student_absent_list')->result_array();
}
在我的控制器中打印结果意味着
的var_dump($ absentresponse);
array(1) {
[0]=>
array(9) {
["absendId"]=>
string(1) "1"
["studentAbsentId"]=>
string(9) "["1","2"]"
["studentAbsentDate"]=>
string(10) "2017-04-11"
["schoolId"]=>
string(1) "2"
["classId"]=>
string(1) "1"
["sectionId"]=>
string(1) "1"
["reg_date"]=>
string(19) "2017-04-13 01:01:03"
["created_by"]=>
string(29) "kanniyappan@g2evolution.co.in"
["status"]=>
string(1) "0"
}
}
我的预期结果
{
"status": 1,
"data":
[
{
"studentabsentId":"1"
"studentabsentName":"Kani"
"studentAbsentDate": "2017-04-12"
},
{
"studentabsentId":"2"
"studentabsentName":"yuvi"
"studentAbsentDate": "2017-04-12"
}
]
}
为了获得我的预期答案,我写了这样的代码,
$optionsList = array();
foreach($absentresponse as $hmres)
{
$hmparent['studentabsentId']=json_decode($hmres['studentAbsentId']);
$hmparent['studentAbsentDate']=$hmres['studentAbsentDate'];
array_push($optionsList,$hmparent);
}
$return = array("status" => 1, "data" => $optionsList);
echo json_encode($return);
我得到了ouput
{
"status": 1,
"data": [
{
"studentabsentId": [
"1",
"2"
],
"studentAbsentDate": "2017-04-11"
}
]
}
这不是我预期的结果,请帮助我任何人如何做,为此目的找到 studentAbsentId 名称我已经在我的助手中写了这个功能
我的助手
if ( ! function_exists('getStudentnameById')){
function getStudentnameById($id){
$ci =& get_instance();
$ci->load->database();
$ci->db->select('firstName');
$ci->db->where('student_id', $id);
$q = $ci->db->get('new_student')->result();
return $q[0]->firstName; // particulart filed
}
}
答案 0 :(得分:0)
英语不是我的母语,对不起。
在您的控制器中,您应该使用输入类获取$ _POST数据。 来源Codeigniter documentation
在您的模型中,您可以通过以下方式简化代码:
public function admin_options_listdisplay($params)
{
return $this->db->select('*')
->where('status !=', '1')
->where('schoolId =', $params['schoolId'])
->where('classId =', $params['classId'])
->where('sectionId =', $params['sectionId'])
->where('studentAbsentDate =', $params['absentDate'])
->get('student_absent_list')
->result_array();
}
为什么要返回result_array?如果模型正确完成,则只应返回对象类型。
在json中,只有对象被embrace包围,并且它们采用这种形式
{
'string' : value,
'string' : value
}
有关详情,请转至json.org
检索此json的目的是什么?
我认为,你应该在缺席的情况下返回学生对象。
答案 1 :(得分:0)
只需将您的$ absentresponse添加到您的数组中。
echo json_encode(array("status"=>true, "data"=>$absentresponse));
你不需要做其他事......