消息:未定义的变量:在浏览网页(Message: Undefined variable: in Vi

2019-10-29 01:29发布

我仍然在PHP和MVC概念新。 我一直在试图复制CI新闻教程(http://codeigniter.com/user_guide/tutorial/news_section.html),而用我自己的数据库和重写代码。

我一直不成功。

这里是我的控制器:

    class Main extends CI_Controller
{

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

    $this->load->helper('url');
    $this->load->library('tank_auth');
    $this->load->model('structures_model');
}

public function structures()
{
    $this->load->model('structures_model');
    if (!$this->tank_auth->is_logged_in()) {
        redirect('/auth/login/');
    } else {
        $data['structures_all'] = $this->structures_model->get_structures();
        $this->load->view('templates/header', $data);
        $this->load->view('templates/navmain', $data);
        $this->load->view('structures', $data);
        $this->load->view('templates/footer', $data);
    }
}

这里是我的模型(structures_model)

<?php
class Structures_model extends CI_Model {

public function __construct()
{
    $this->load->database();
}

public function get_structures()
{
    $query = $this->db->get('structures');
    return $query->result_array();
}

}

而我的看法:

<?php foreach ($structures_all as $structures_info): ?>
<h2>Structures</h2>
<div id="main">
    <?php echo $structures_info['str_name'] ?>
</div>
<?php endforeach ?>

错误即时得到的是共同的:

A PHP Error was encountered<
Severity: Notice
Message: Undefined variable: structures_all
Filename: main/structures.php
Line Number: 2

我很茫然。 我已经看了所有的类似的错误的人已经得到了,但无法弄清楚到底为什么没有被定义structure_all阵列。 难道不应该在我设定的控制器功能获得创建:

$data['structures_all'] = $this->structures_model->get_structures();

我在想什么?

Answer 1:

调试这个最好的方法是将分配$data['structures_all']一定数组值,说: $data['structures_all'] = array('foo' => 'bar');

$structures_all变量现在视图中可用? 如果它是可用的,你知道, $this->structures_model->get_structures(); 将返回null

你有没有在你的数据库称为表structures

你确定你的数据库连接细节填写config/database.php

你有PHP的错误报告设置为所有? 有可能是隐藏的消息...调用error_reporting(E_ALL); 在控制器的构造函数。

也可以尝试呼应: $this->db->last_query(); 验证查询正在建造你在phpMyAdmin试图以同样的方式...

希望这让你在正确的轨道上。



文章来源: Message: Undefined variable: in View page