从模型中获取数组,然后传递给视图

时间:2012-08-13 17:20:28

标签: arrays codeigniter

简单,但对我来说,作为一个初学者,一个问题。我需要从模型中传递一个数组(数组在读取文本文件时填充信息)到控制器,然后最终到视图。 我的模特:

    function show_notes(){
    $file = "notes.txt";

    foreach(file($file) as $entry)
    {
            list($user, $content) = array_map('trim', explode(':', $entry));
            $notes = array (
                'user'=> '$user',
                'content'=> '$content'
            );
    }
    return $notes;
}

控制器:

    function members_area()
{
    $this->load->model('Note_model');
    $notes[] = $this->Note_model->show_notes();

    $this->load->view('includes/header');
    $this->load->view('members_area', $notes);
    $this->load->view('includes/footer');   
}

在视野中我用这个:

        foreach ($notes as $item)
    {
    echo "<h1>$user</h>";
    echo "<p>$content</p>";
            }

我收到的错误是注释变量在我的视图中未定义。

我想我只是不明白数组是如何工作的。我试着读一下这个,我尝试了一些与此类似的例子,但仍然无法得到它。

2 个答案:

答案 0 :(得分:0)

在您的控制器中:

$data['notes'] = $this->Note_model->show_notes();
... 
$this->load->view('members_area', $data);

编辑:

在您看来:

<?php foreach ($notes as $item):?>
   <h1><?php echo $item['user']; ?></h1>
   <p><?php echo $item['content'] ?></p>
<?php endforeach; ?>

在你的模特中:

$notes = array();
foreach(file($file) as $entry)
{
        list($user, $content) = array_map('trim', explode(':', $entry));
        array_push($notes, array('user' => $user, 'content' => $content));
}
return $notes;

答案 1 :(得分:0)

替换此

$notes[] = $this->Note_model->show_notes();

用这个

$notes['notes'] = $this->Note_model->show_notes();