在框架中多次使用Flight :: render

时间:2015-05-29 12:27:57

标签: php flightphp

我正在尝试使用Flight php框架构建一个小型网站。目标是使用各种视图建立一个清晰的框架。

在此之前一切正常,我设法建立了一个不错的framework.php以及内容,菜单和标题视图

Flight::render('header', array('heading'=> $page_title), header_content');
Flight::render('menu', array('type'=> 'main menu'), mainmenu_content');
Flight::render('body',   array(), 'body_content');

Flight::render('layout', array('title' => 'Home Page'));

内容是由多个部分(文章)构成的,它们都具有相同的布局,现在我想再次使用Flight视图来生成这些部分。使用以下代码,我可以创建部分并将其传递给' body'

Flight::render('section',   array('id' => $id), 'section_content');

将多个部分添加到一个页面的最佳解决方案是什么?

我试图在index.php中获取$ section_content的值作为变量并使用Flight :: get(' section_content')。两者都没有成功。运行Flight :: render两次将覆盖$ section_content的值(如预期的那样)。还尝试使用$ section_content的数组,也没有成功。

当然,我可以找到许多解决方案但我不会使用它们,直到我确定我想要的是不可能的继电器。

1 个答案:

答案 0 :(得分:0)

虽然您必须定义所有部分,但您最后定义了布局渲染。像这样;

<?php
Flight::route('/', function(){
    //header.php value is $contHeader varriable
    Flight::render('header', array(
        'title' => 'Test title'
    ), 'contHeader');
    //modals.php value is $contModals varriable
    Flight::render('modals', array(), 'contModals');
    //body.end.php value is $contBodyEnd varriable
    Flight::render('body.end', array(), 'contBodyEnd');
    //nav.menu.php value is $contNavMenu varriable
    Flight::render('nav.menu', array(), 'contNavMenu');
    //You must all varriable define in "layout.homepage.php", you can write it with echo statement
    Flight::render('layout.homepage'); //you forget this one
});
?>