所以我运行一个查询,并试图返回一个结果集回到我的视图,但当我做<?php foreach ($form_records as $form_record) : ?><?php echo $form_record['fname']; ?> <?php endforeach; ?>
我得到未定义的变量:form_records。当我运行查询时,我做错了什么(选择fname, lname from form_manager其中用户名= "tester"),我得到一行成功返回,因此查询正在工作。
function retrieve_form_record($username) {
$this->db->select('fname,lname');
$this->db->from('form_manager');
$this->db->where('username', $username);
$query = $this->db->get();
if ($query->num_rows() > 0)
{
$form_records= $query->result_array();
return $form_records;
}
else {
return false;
}
}
}
h2控制器 function load_saved_forms() {
$username = $this->tank_auth->get_username();
$form_records = $this->Form_model->retrieve_form_record($username);
$this->load->view('welcome',$form_records);
}
function retrieve_form_record($username) {
$this->db->select('fname,lname');
$this->db->from('form_manager');
$this->db->where('username', $username);
$query = $this->db->get();
if ($query->num_rows() > 0)
{
$form_records= $query->result_array();
return $form_records;
}
else {
return false;
}
}
}
function load_saved_forms() {
$username = $this->tank_auth->get_username();
$form_records = $this->Form_model->retrieve_form_record($username);
$this->load->view('welcome',$form_records);
}
问题是如何将参数传递给view
,更改这一行:
$this->load->view('welcome',$form_records);
:
$data['form_records'] = $form_records; //<<--pass data to view right way.
$this->load->view('welcome',$data);
,然后你可以执行这个内部视图:
<?php foreach ($form_records as $form_record) : ?>
<?php echo $form_record['fname']; ?>
<?php endforeach; ?>
请注意,view
中的$form_records
是您在$this->load->view('welcome',$data);
传递的数组$data
的索引
$form_records可能是一个数组,并且查看代码编写器的文档,它将在传递给视图时将这些元素转换为数组元素。
查看此链接:http://ellislab.com/codeigniter/user-guide/general/views.html
但是它说如果你在控制器中这样做了:
$data['todo_list'] = array('Clean House', 'Call Mom', 'Run Errands');
$this->load->view('blogview', $data);
你可以像这样在你的视图中使用"todo_list":
<?php foreach ($todo_list as $item):?>
<li><?php echo $item;?></li>
<?php endforeach;?>