Многократное использование Flight::render в фреймворке

Я пытаюсь создать небольшой сайт с использованием фреймворка 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 для создания этих разделов. используя следующий код, который я могу создать в разделе и передать его через "тело"

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

Как лучше всего добавить несколько разделов на одну страницу?

Я пытался получить в index.php значение $ section_content как переменную и используя Flight::get('section_content'). оба безуспешно. если дважды выполнить Flight::render, то значение $ section_content будет перезаписано (как и ожидалось). Также пытался использовать массив для $ section_content, также безуспешно.

Конечно, я могу найти множество обходных решений, но я не собираюсь использовать их, пока не буду уверен, что то, что я хочу, является невозможным.

1 ответ

Хотя вы должны определить все разделы, вы в последний раз определяете свой макет рендера. Как это;

<?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
});
?>
Другие вопросы по тегам