没有显示视图页面


Not showing view page

我不知道如何做到这一点,因为它不响应我的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:我仍然没有看到正确的页面

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

来自CI用户指南

将视图作为数据返回

还有第三个可选参数,可以让您更改函数的行为,以便它以字符串形式返回数据,而不是将其发送到浏览器。如果您想以某种方式处理数据,这可能很有用。如果你将参数设置为true (boolean),它将返回数据。默认行为为false,它会将其发送到浏览器。如果您希望返回数据,请记住将它赋值给一个变量:

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

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

我对代码点火器一无所知,但正如我所看到的。我认为$page可能是一个TEMPLATE对象,它不应该自然地使用ECHO显示…

你的模板无法渲染,因为php致命错误,但这就是为什么你的缓冲区包含初始DIV,但没有其他。(或者在处理ECHO $PAGE时调用EXIT/DIE)

This "$ This -> know ->pageStatus('index', $activeTemplate[0]->id)"返回一个数组。你做这件事的方式无法与之相比。当然它会返回1,这可以解释为TRUE,但如果status_id被设置为0或2或其他东西,那么它仍然会返回"TRUE"。

希望能有所帮助