与codeigniter的foreach错误

时间:2010-10-09 20:43:50

标签: codeigniter foreach

嘿我正在使用codeigniter,我收到了这个错误

遇到PHP错误

严重性:注意

消息:未定义的变量:查询

文件名:views / nyheder_view.php

行号:2 遇到PHP错误

严重性:警告

消息:为foreach()提供的参数无效

文件名:views / nyheder_view.php

行号:2

我的控制员:

   <?php

class Nyheder extends Controller {

 function index()
    {
  $data['content'] = 'nyheder_view';
   $this->load->view('includes/template', $data);

    }

 function vis()
 {
  //parent::controller();
  $this->load->model('nyheder_model');
  $data['query'] = $this->nyheder_model->load_nyheder();

  $this->load->view('nyheder_view', $data);

 }
}
?>

我的观点

<?php foreach($query as $row) : ?>
<h1><?php echo $row->overskrift; ?></h1>
<p><?php echo $row->indhold; ?></p>
<?php endforeach;?>

5 个答案:

答案 0 :(得分:1)

我这里没有看到任何错误。你能在加载你的nyheader_view之前把这行放进去吗?

die(var_export($data));

让我们知道你的看法。

答案 1 :(得分:1)

我猜想$ this-&gt; nyheder_model-&gt; load_nyheder()会返回false或null。

在加载视图之前尝试var_dump($ this-&gt; nyheder_model-&gt; load_nyheder())。

你的nyheder模型中的sql查询有问题吗?

答案 2 :(得分:0)

我同意问题可能在你的模型中的某个地方......或者可能更明显的是数据库选项没有被激活...尝试:

 function __construct(){
          parent::Controller(); 

          $this->load->database();
  }

答案 3 :(得分:0)

好吧,猜测load_nyheder()要么返回一个对象,要么返回一个数组 所以首先通过硬编码和数组来检查管道:

$data['query'] = array(
            'keystr1' => 'valuestr1',
            'keystr2' => 'valuestr2',
            'keystr3' => 'valuestr3'
                       );
$this->load->view('nyheder_view', $data);

注意:如果你把一个对象作为$ data,它将被转换为一个数组。

然后在你看来“nyheder_view”做更像这样的事情:

<?php foreach($query as $someKey=>$someValue):?>
    <h1><?php echo $someKey; ?></h1>
    <p><?php echo $someValue; ?></p>
<?php endforeach;?>

首先使用硬编码测试(夹具)数据,然后尝试用你的load_nyheder()输入$ data ['query'],看看你是否遇到类似的问题。这样你就知道问题所在。

答案 4 :(得分:-1)

试试这个,我认为你在$ query ...

之后错过了结果()
<?php foreach($query->result() as $row) : ?>
   <h1><?php echo $row->overskrift; ?></h1>
   <p><?php echo $row->indhold; ?></p>
<?php endforeach;?>