消息:Undefine变量:考试

时间:2017-06-23 05:16:22

标签: codeigniter

controller:Test.php

 <MediaPlayerElement x:Name="MediaView"
                            Grid.Row="2"
                            Source="{Binding MediaSourceObject, Mode=OneWay}"
                            DoubleTapped="MediaView_DoubleTapped"
                            AreTransportControlsEnabled="True">
            <MediaPlayerElement.TransportControls>
                <data:CustomTransportControlsHelper Style="{StaticResource ResourceKey=myCustomTransportControls}"/>
            </MediaPlayerElement.TransportControls>
        </MediaPlayerElement>

view:header.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Test extends CI_Controller 
{
    function __construct() 
    {
        parent :: __construct();
        $this->load->helper(array('form', 'url'));
        $this->load->model('Fetch_data');
    }
    public function agriculture_exam()
    {
        $stream = 'agriculture';
        $data['exam'] = $this->Fetch_data->top_agriculture_exams($stream);
        $this->load->view('header',$data);
    }
}

model:Fetch_data.php

<ul class="list">
<?php 
    foreach($exam as $row) 
    {
       echo "<li><a href='#'>".$row['exam_name']."</a></li>"; 
    }
?>
</ul>

我是ci的新人。在控制器即Test.php中,我定义$ stream ='agriculture'并将$ stream变量传递给top_agriculture_exams模型。现在,当我在header.php文件中获取数据时,它会向我显示一条消息:Undefine变量:$ exam我不知道为什么。那么,我该如何解决呢?请帮助我。

谢谢

2 个答案:

答案 0 :(得分:0)

请检查我的以下代码。这对你有帮助。

<ul class="list">
    <?php
    if ($exam !== NULL):
        foreach ($exam as $row):
            echo "<li><a href='#'>" . $row['exam_name'] . "</a></li>";
        endforeach;
    endif;
    ?>
</ul>

另外cna请将此代码放入View并分享结果。

<?php
var_dump($exam);
?>

另请查看下面的型号代码。

<?php  
    class Fetch_data extends CI_Model  
    {  
        function __construct()  
        {   
            parent::__construct();  
        }  
        public function top_agriculture_exams($stream)
        {
            $this->db->select('exam_name');
            $this->db->from('all_exams_details');
            $this->db->where('exam_name',$stream);
            $this->db->order_by('exam_name');
            $this->db->limit('10');
            $query = $this->db->get(); 
            $result = $query->result_array();
            return $result;
        }
    }

答案 1 :(得分:0)

而不是使用元素数组访问它,尝试使用object访问它。

更改Fetch_data.php文件中的以下代码。

//$result = $query->result_array();
$result = $query->result();

并在header.php中按对象访问它。这是下面的例子。

<ul class="list">
 <?php foreach($exam as $row): ?> 
      <?=  "<li><a href='#'>" . $row->exam_name . "</a></li>" ?>
 <?php endforeach;
</ul>

其中exam_name等于数据库中的列。

相关问题