Codeigniter消息:未定义变量:infos

Codeigniter消息:未定义变量:infos,codeigniter,Codeigniter,我是CI的新手。我使用我的_Controller.php作为主控制器。我可以打开ajax作为div页面加载器。现在,我的问题是,尽管我加载了/about页面,但我得到了服务模型的数据库条目。如何获取关于控制器的关于表 .. function render_page($view) { if( ! $this->input->is_ajax_request() ) { $this->load->view('templ

我是CI的新手。我使用我的_Controller.php作为主控制器。我可以打开ajax作为div页面加载器。现在,我的问题是,尽管我加载了/about页面,但我得到了服务模型的数据库条目。如何获取关于控制器的关于表

..
    function render_page($view) {
        if( ! $this->input->is_ajax_request() )
        {
          $this->load->view('templates/header', $this->data);
        }
        $this->load->view($view, $this->data);

        if( ! $this->input->is_ajax_request() )
        {
         $this->load->view('templates/menu');
         $this->load->view('templates/footer', $this->data);
        }
      }..
我的服务模式:

class Services_model extends CI_Model {

    function getAll() {
        $q = $this->db->get('services');
        if($q->num_rows() > 0){
        foreach ($q->result() as $row)
        {
            $data[] = $row;

            }
        return $data;
    }
    }
}
我的家庭控制器:

public function view($page = 'home')
{
$this->load->helper('text');
$this->data['records']= $this->services_model->getAll();
if ( ! file_exists('application/views/pages/'.$page.'.php'))
{
    // Whoops, we don't have a page for that!
show_404();
}
$data['title'] = ucfirst($page); // Capitalize the first letter
$this->render_page('pages/'.$page,$data);
}
当我在主视图中使用它们时,没有问题,我可以看到services_表:

<ul class="blog-medium">
<?php foreach($records as $row): ?>
<li>    
<div class="blog-medium-text">
<h1><a href="./post.html"><?php echo $row->title; ?></a></h1>
<p class="blog-medium-excerpt"><?php  echo $row->content; ?><br />
<a href="./post.html" class="read_more">Devamını Okumak için &rarr;</a></p>
</div>
<?php endforeach ?>
关于控制器:

 public function view($page = 'about')
    {
    $this->load->helper('text');
    $this->data['records']= $this->about_model->getAll();
    if ( ! file_exists('application/views/pages/'.$page.'.php'))
    {
        // Whoops, we don't have a page for that!
    show_404();
    }
    $data['title'] = ucfirst($page); // Capitalize the first letter
    $this->render_page('pages/'.$page,$data);
    }
这是我对以下内容的看法:

<div id="content">
<?php foreach($infos as $row): ?>
<h3 style="text-align: center;"> <?php echo $row->title; ?></h3>
<div class="hr">    </div>
<?php echo $row->content; ?>
<?php endforeach; ?>

为什么我不能获取abouts表?

您正在调用
foreach
中的变量
$infos
,但它从未作为变量传递到视图中

阅读有关的文档

您需要将
$data['infos']
设置为某个值,或者,我猜这是您想要的,在
foreach中使用
$records

以上回答了您的具体问题,但在您为您的来源提供回购协议后,您正在努力解决一些问题。我强烈建议您阅读整个文档,从开始,继续阅读教程,然后阅读一般主题


这里出现问题的原因是,您的routes.php设置确保所有内容都被路由到执行
view
方法的
Home
控制器中。此方法在接受您想要查看的页面时,总是返回服务模型的获取。您的其他控制器根本无法执行。根据控制器设置,如果只需删除自定义路由,
http://theurl/about
将路由到
关于
控制器。要加载的默认方法是
索引
,因此如果将视图更改为索引,则默认情况下将显示该方法。

是否希望在“关于视图”文件中写入
$records
?在您分配给“$this->data['records']”的about控制器中,不是分配给
$this->data['infos']
。我更改了$this->data['infos']仍然是相同的错误。如果我使用记录。我得到了服务模型的结果。在你的渲染逻辑中似乎有一些有趣的东西,我将更新我的答案。一秒钟后,我尝试了$data['records']=和$data。。如果我用它,即使是我的家庭观点给我。。未定义变量:记录。你能给我更多的信息吗?你真的需要阅读他们的文档,了解PHP类和变量作用域是如何工作的。如果您想将模型、视图和控制器上载到gist.github.com(您可以在一个gist中放置多个文件),这将提供一些见解,但由于上面的信息有限,我无法做出更多假设。我添加了关于它现在工作的路线。但我会听从你的建议,多读点书。
<div id="content">
<?php foreach($infos as $row): ?>
<h3 style="text-align: center;"> <?php echo $row->title; ?></h3>
<div class="hr">    </div>
<?php echo $row->content; ?>
<?php endforeach; ?>
Severity: Notice
Message: Undefined variable: infos
Filename: pages/about.php
Line Number: 3