我在每个视图中都包含两个文件,分别是nav.php
和footer.php
。
所有会话可变量和base_url()
都在nav.php
文件中工作,但是当我想在footer.php
中执行相同操作时,它无效。
url
帮助文件通过config/autoload.php
自动加载为
$ autoload ['helper'] = array('url','file');
我花了一整天的时间来弄清楚自己,但它不起作用。
nav.php
<ul class="nav navbar-nav">
<li><a href="<?php echo base_url('projects/new_project'); ?>">Post New Project</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Projects <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="<?php echo base_url('projects'); ?>">All Projects</a></li>
<li><a href="<?php echo base_url('projects?t=featured'); ?>">Featured Projects</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Funds <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="<?php echo base_url('funds/upload'); ?>">Upload Funds</a></li>
<li><a href="<?php echo base_url('funds/withdrow'); ?>">Withdraw Funds</a></li>
</ul>
</li>
</ul>
footer.php
<ul class="footer-list">
<li><a href="<?php echo base_url('users/login'); ?>">Login</a></li>
<li><a href="<?php echo base_url('users/Register'); ?>">Register</a></li>
</ul>
在我的viewname.php文件中,我将它们称为
<?php include('includes/nav.php'); ?>
Other code here
<?php include('includes/footer.php'); ?>
nav.php
工作正常但footer.php
无效。
autoload.php
(Line :67) $autoload['helper'] = array('url', 'file');
的config.php
(Line :17) $config['base_url'] = 'http://localhost/cl';
答案 0 :(得分:2)
可能缺少回声?
并确保自动加载不会被多次声明。
为了使用base_url(),您必须首先加载URL Helper(您已经完成了)。这可以在application / config / autoload.php(第67行或第67行)中完成:
$ autoload ['helper'] = array('url');
或者,手动:
$这 - &GT;负载&GT;辅助( 'URL');
加载后,请务必记住base_url()不会隐式打印或回显任何内容,而是返回要打印的值:
echo base_url();
还要记住返回的值是配置文件中提供的网站的基本网址。 CodeIgniter也将在配置文件中容纳一个空值:
如果未设置此(base_url),则CodeIgniter将猜测 协议,域和安装路径 application / config / config.php,第13行
编辑: 更改以下
包括( '包括/ nav.php'); //这里的其他代码
包括( '包括/ footer.php');
到
$this->load->view('includes/nav.php');
// Other code here
$this->load->view('includes/footer.php');
我不会在MVC框架中使用此方法,因为不需要使用$ this-&gt; load-&gt;视图。另一件事是路径必须是绝对/相对的,这意味着如果您确实更改了文件夹结构,则必须更新所有include语句。它真的反对MVC结构。如果我们能够使用解析器或已定义的方法执行此操作,那么为什么我们在另一个视图中调用view:)