我是CI的新手。我使用MY_Controller.php作为主控制器。我可以打开ajax作为div#page loader。现在,我的问题是虽然我加载/关于页面,但我获得了服务模型的数据库条目。我如何获得关于控制器的约会表?
..
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);
}
}..
我的services_model:
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_table:
<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 ?>
我想在about page中使用相同的方法。 About_model:
class About_model extends CI_Model {
function getAll() {
$q = $this->db->get('abouts');
if($q->num_rows() > 0){
foreach ($q->result() as $row)
{
$data[] = $row;
}
return $data;
}
}
}
关于控制器:
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; ?>
我收到错误告诉我:
Severity: Notice
Message: Undefined variable: infos
Filename: pages/about.php
Line Number: 3
为什么我不能得到约会表?
答案 0 :(得分:2)
您在$infos
中调用变量foreach
,但它永远不会作为变量传递给您的视图。
阅读有关Adding Dynamic Data to the View
的文档您需要将$data['infos']
设置为某些内容,或者我猜测您的意图,在$records
中使用foreach
以上回答了您的具体问题,但在您提供了源代码的回购后,您遇到了一些问题。我高度建议您仔细阅读整个文档,盯着Introduction: Getting Started,继续阅读教程,然后阅读常规主题。
你遇到问题的原因是你的routes.php设置为一切都被路由到执行Home
方法的view
控制器。此方法虽然接受您要查看的页面,但始终返回服务模型的提取。您的其他控制器根本没有被执行。根据您的控制器设置,如果您只是删除自定义路由,http://theurl/about
将路由到About
控制器。要加载的默认方法是index
,因此如果您将视图更改为索引,则默认情况下会显示。