没有显示视图页面

时间:2011-10-16 23:11:37

标签: php codeigniter

我不知道该怎么做,因为它没有回应我的HTML。它在firebug中显示div标签,但在它之后没有任何其他东西应该是索引页面(主页)或我的404页面。应该发生的是它应该找出它应该通过if语句加载哪个页面视图,然后在内容页面中加载该视图。

控制器:

 $siteInfo = $this->kow->getSiteTitleAndSlogan();
 $activeTemplate = $this->kow->getTemplate();
 if ($this->kow->pageStatus('index', $activeTemplate[0]->short_name) == 1){
     $page = $this->load->view($activeTemplate[0]->short_name.'/pages/index'); 
 } else {
     $page = $this->load->view($activeTemplate[0]->short_name.'/pages/404'); 
 }
 $footerLinks = $this->kow->getFooterNav(); 
 $this->template
 ->title($siteInfo[0]->site_name,$siteInfo[0]->site_slogan)
 ->prepend_metadata('<link rel="stylesheet" type="text/css" href="http://www.kansasoutlawwrestling.com/assets/css/'.$activeTemplate[0]->short_name.'.css" />')
 ->set('footerLinks', $footerLinks)
 ->set('page', $page)               
 ->set_partial('header', $activeTemplate[0]->short_name.'/header')
 ->set_partial('navigation', $activeTemplate[0]->short_name.'/navigation')            
 ->set_partial('content', $activeTemplate[0]->short_name.'/content')
 ->set_partial('footer', $activeTemplate[0]->short_name.'/footer')
 ->build('kow');

if ($this->kow->pageStatus('index', $activeTemplate[0]->short_name) == 1){
      $page = $this->load->view($activeTemplate[0]->short_name.'/pages/index'); 
} else {
      $page = $this->load->view($activeTemplate[0]->short_name.'/pages/404'); 
}

查看:

<div id="content">
<?php 
echo $page; 
?>
</div>

编辑:我要做的是将活动模板的id和字符串索引带到pageStatus函数,并查看页面状态是否为1。当我运行print_r函数时下面我明白了:

 Array ( [0] => Array ( [status_id] => 1 ) ) 

控制器

if ($this->kow->pageStatus('index', $activeTemplate[0]->id) == 1){
    $page = $this->load->view($activeTemplate[0]->short_name.'/pages/index', '', true); 
} else {
    $page = $this->load->view($activeTemplate[0]->short_name.'/pages/404', '', true); 
}
print_r($this->kow->pageStatus('index', $activeTemplate[0]->id));

编辑2:我仍然无法查看正确的页面。

3 个答案:

答案 0 :(得分:1)

我对代码点火器一无所知,但正如我所看到的那样。我认为$ page可能是一个TEMPLATE对象,并不意味着使用ECHO naturaly显示...

OR

由于php致命错误,您的模板无法呈现,但这就是为什么您的缓冲区包含初始DIV但没有其他内容。 (或者在处理您的ECHO $ PAGE时调用了EXIT / DIE)

答案 1 :(得分:1)

您正在将索引和404的视图错误地加载到$page变量中。要存储$this->load->view()来电的输出,您必须将true作为第三个参数。

来自CI用户指南

将视图作为数据返回

第三个可选参数允许您更改函数的行为,以便将数据作为字符串返回,而不是将其发送到浏览器。如果要以某种方式处理数据,这可能很有用。如果将参数设置为true(布尔值),它将返回数据。默认行为为false,将其发送到您的浏览器。如果要返回数据,请记住将其分配给变量:

$string = $this->load->view('myfile', '', true);

此外,代码的最后一位,$page的第二个定义发生在调用->set('page', $page)->build('kow');之后,因此不会更改输出。

答案 2 :(得分:1)

这个“$ this-&gt; kow-&gt; pageStatus('index',$ activeTemplate [0] - &gt; id)”返回一个数组。不能以你的方式比较它。当然它会返回1,可以解释为TRUE,但如果status_id设置为0或2或其他什么,那么它仍将返回“TRUE”。

希望这有帮助