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