[英]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"> </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> </div></div>
<div class="main-wrap"><div class="main-cnt">
<?=$content?>
<span id="mainbox-clear"> </span>
</div></div>
<div class="main-bottom"><div> </div></div>
<p> </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.