从控制器中查看数据

时间:2013-04-29 23:52:02

标签: php codeigniter

因此我运行一个查询并尝试将结果集返回到我的视图中,但是当我执行<?php foreach ($form_records as $form_record) : ?><?php echo $form_record['fname']; ?> <?php endforeach; ?>时,我得到Undefined变量:form_records。运行查询时我做错了什么(从form_manager中选择fname,lname,其中username =“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;
            }

      }
    }

控制器

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);
                            }   

2 个答案:

答案 0 :(得分:2)

问题是如何将参数传递给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; ?>

请注意$form_records中的view是您在$data传递的数组$this->load->view('welcome',$data);的索引

答案 1 :(得分:1)

$ form_records可能是一个数组,在查看codeigniter的doc时,它会在传递给视图时将它们转换为数组元素。

请参阅此链接: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;?>