嘿我正在使用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;?>
答案 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;?>