【问题标题】:Not showing view page不显示查看页面
【发布时间】:2011-10-16 23:11:37
【问题描述】:

我不知道该怎么做,因为它没有回显我的 html。它在萤火虫中显示 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:我仍然没有看到正确的页面。

【问题讨论】:

  • 该代码来自哪个视图?
  • 那是来自内容视图而不是索引视图。

标签: php codeigniter


【解决方案1】:

您将索引和 404 的视图错误地加载到 $page 变量中。要存储$this-&gt;load-&gt;view() 调用的输出,您必须包含true 作为第三个参数。

来自 CI 用户指南

将视图作为数据返回

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

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

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

【讨论】:

  • 感谢您的回复。如何修正您回复的第二部分?
  • 实际上我现在已经回显了它,但是由于某种原因它没有显示索引页面。它显示 404 页面。
【解决方案2】:

我对代码点火器一无所知,但正如我所见。我认为 $page 可能是一个 TEMPLATE 对象,它并不意味着使用 ECHO 自然显示...

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

【讨论】:

    【解决方案3】:

    这个 "$this->kow->pageStatus('index', $activeTemplate[0]->id)" 返回一个数组。无法以您的方式进行比较。当然它会返回 1,这可以解释为 TRUE,但如果 status_id 设置为 0 或 2 或其他值,那么它仍然会返回“TRUE”。

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2020-09-15
      • 2014-10-30
      • 1970-01-01
      • 1970-01-01
      • 2012-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多