【问题标题】:My PHP echo at the top of the page我在页面顶部的 PHP 回显
【发布时间】:2013-03-24 21:17:38
【问题描述】:

我正在使用 Codeigniter,并定义了包含我的布局的自己的控制器

protected $layout = 'layout';
protected function render($content) {
  $view_data = array(
    'content' => $content
  );
  $this->load->view($this->layout,$view_data);
}

所有控制器都通过调用视图来扩展这个控制器来定义自己的内容

class Voyage extends My_Controller {
    function index(){
        $this->load->helper('form');
        $this->load->helper('url');
        $content = $this->load->view('admin\voyages');
        $this->render($content);
    }

我的html页面是这样的:

<body>
<header>.....</header>
<nav>......</nav>
<section>.. <?php echo $content; ?>...</sectiont>

问题是我的 echo $content 将内容放在页眉和导航元素之前的页面顶部。

你能帮我解决这个问题吗?

【问题讨论】:

  • 似乎是一个经典的缓存问题。尝试在开发过程中禁用缓存,或者至少清空它和/或强制重新加载您的页面。
  • 除此之外;不久前我也遇到了一个问题,似乎 CodeIgniter 会堆叠所有 load-view() 调用,有时会触发错误排列的输出。就我而言,它突然自己解决了(我认为也清空了缓存)。否则,可能是 CodeIgniter 在一次控制器调用中从不同类中获取 load-&gt;view() 时遇到问题。
  • 你确定这不是 CSS 的东西吗? float: left 什么的?顺便提一句。你能发布voyages.phplayout.php的内容吗?

标签: php codeigniter buffer echo


【解决方案1】:
$content = $this->load->view('admin\voyages');

应该是:

$content = $this->load->view('admin\voyages', '', true);

如果你想将它加载到一个变量中。你正在做的事情会立即呈现它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多