我正在尝试使用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的数组,也没有成功。
当然,我可以找到许多解决方案但我不会使用它们,直到我确定我想要的是不可能的继电器。
答案 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
});
?>