繁体   English   中英

CodeIgniter 视图未解析 PHP

[英]CodeIgniter view not parsing PHP

我遇到了以下代码不解析 baseTop.php,而是将其作为文字字符串而不是解析 PHP 的问题。 我在此页面上的 PHP 例如<?=$content?>工作正常。 关于为什么会发生这种情况的任何想法?

<?
    $this->load->view('layouts/baseTop.php');
?>
    <div class="shell">
        <div id="header">
            <h1 id="logo" class="fl notext"><a href="/">Home</a></h1>
            <div class="top-bar">
                <div class="cl">&nbsp;</div>
            </div>
        </div>
        <div id="content">
            <div id="sidebar">
            </div>
            <div id="widecolumnWrapper"><div id="widecolumn">
                <!-- tabs -->
                <div id="mainbox">
                    <div class="main-top"><div>&nbsp;</div></div>
                    <div class="main-wrap"><div class="main-cnt">
                    <?=$content?>
                        <span id="mainbox-clear">&nbsp;</span>
                    </div></div>
                    <div class="main-bottom"><div>&nbsp;</div></div>
                    <p>&nbsp;</p>
                </div>
            </div></div>
        </div>
    </div>
<?
    $this->load->view('layouts/baseBottom.php');
?>

不要使用短的开放标签。 使用完整的<?php?> 如果您启用了短打开标签,请检查phpinfo()以验证此设置。 我怀疑你的设置没有正确设置。

您应该避免使用短的开放标签,因为它们不明确,并且可能会在 PHP 的未来版本中被删除。 但是,它们尚未正式弃用。

好吧,您不应该在另一个视图中加载任何视图。 错误原因是$this指向View class object,加载视图定义在CI_Controller class中。 要实现您想要的,您可以执行以下操作

在 controller 中:

$data = $this->load->view('layouts/baseTop.php',array(), TRUE);
$this->load->view('*your view*', array('baseTop'=>$data));

在您看来:替换<? $this->load->view('layouts/baseTop.php');?> <? $this->load->view('layouts/baseTop.php');?>只需<?php echo $baseTop;?>

这样您就可以将另一个视图放入您的视图中,就好像它包含在其中一样。 注意baseTop.php加载中的 TRUE - 这指示 CodeIgniter 将视图 output 捕捉到变量而不是将其刷新到页面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM