在codeigniter中访问数组元素“id”不起作用。无法找到可能的失败原因。如果有人能够表明正确的方法,那将会很有帮助,
我的观点
<form name ="userinput" onsubmit="return test()" action="<?php echo base_url(); ?>index.php/patient/saveNewExaminationChart/<?php echo $pd['id']; ?>" method="post">
<?php echo $pd['id']; ?>
对于这部分,我想获得控制器传递的id号来查看。
我的控制器
public function editPeriodicalDetails(){
$pid = $this->uri->segment(3);
$this->load->model('patient_model');
$patient['pd'] = $this->patient_model->getPeriodicalChart($pid);
$this->load->helper('url');
$this->load->view('Header');
$this->load->view('Patient/editPeriodicalExam',$patient);
$this->load->view('Footer');
}
我的模特
public function getPeriodicalChart($id){
$this->load->database();
$this->db->select('*');
$this->db->from('periodical_examination a');
$this->db->join('patient p','p.id = a.pid');
$this->db->where('a.pid',$id);
$query = $this->db->get();
return $query->result();
}
答案 0 :(得分:2)
在模型中
return $query->result_array();
在控制器中
$result= $this->patient_model->getPeriodicalChart($pid);
$patient = $result[0]['pd']; # zero indexed array pointer
答案 1 :(得分:2)
result()是递归的,因为它返回一个std类对象,其中result_array()只返回一个纯数组,因此result_array()将是关于性能的选择。虽然速度上的差异很小。在PHP中基本知识的任何人都会发现易于阅读的代码
而不是这一行
$query = $this->db->get();
return $query->result();
(只是使用它真的很容易理解)
return $this->db->get()->result_array();
答案 2 :(得分:1)
它应该是一个对象。试试这个
<?php echo $pd->id; ?>
如果可能有更多的结果集,那么试试这个
<?php echo $pd[0]->id; ?>
答案 3 :(得分:1)
$query->result();
是一个Object而不是一个数组..返回一个你应该使用的数组
$query->result_array();
答案 4 :(得分:0)
您在模型中使用了return $query->result();
,并通过Controller将所有表发送到视图。
那太好了。一切都很好。现在,您只需在视图页面中使用以下代码echo
id
。
查看(editPeriodicalExam)
<?php
foreach($pd as $item){
echo $item['id'];
}
?>