我正在进行CI + HMVC安装。当我使用HMVC函数调用时:
Modules::run("header");它不会在屏幕上打印任何内容。但是,如果我运行:
echo Modules::run("header");或者:
$x = Modules::run("header");然后它就起作用了。
这是我正在尝试实现的代码:
// HOME MODULE
class Home extends MX_Controller{
public function index(){
Modules::run("header");
$this->load->view('home_view');
Modules::run("header");
}
}
// HEADER MODULE
class Header extends MX_Controller{
public function index(){
$this->load->view('header_view');
}
}
// FOOTER MODULE
class Footer extends MX_Controller{
public function index(){
$this->load->view('footer_view');
}
}但当我运行它时,我只看到"home_view“内容。没有页眉和页脚。
我不能使用上面的方法来解决它,因为$ this ->load->view()是缓冲的,它使我的"home_view“内容出现在我的超文本标记语言的底部,在我的页脚下面,这会破坏我的东西。
请帮我找出Modules:run()不能缓冲的原因。谢谢
发布于 2016-10-20 14:53:27
是的,它完全按照你所描述的那样做,这很有趣,也是我从未观察到的,因为我不会在现实世界的脚本中实现你所做的事情。
你可以做的就是创建一个template_view,如下所示。这是非常简洁的..。
template_view.php
<?= isset( $header ) ? $header : ''; ?>
<?= isset( $content ) ? $content : ''; ?>
<?= isset( $footer ) ? $footer : ''; ?>然后,您将构建页面部分并创建最终输出。
Home.php控制器
class Home extends MX_Controller {
public function __construct() {
parent::__construct();
}
public function index() {
// Build the Page Sections
$data['header'] = Modules::run("header");
$data['footer'] = Modules::run("footer");
$data['content'] = $this->load->view('home_view', '', true);
// Display the final Page
$this->load->view('template_view',$data);
}
} 因此,您可以创建已经包含页眉和页脚的模板,因为它们在示例中是静态内容。然后只需创建动态填充的区域。
这将引导您使用模板模块来为您处理所有这些内容。这不是你的问题,但希望它能给你一些思考的食粮。
https://stackoverflow.com/questions/40123555
复制相似问题