Приложение Phalcon Micro, добавляющее представления

Я начал создавать API для отдыха и выбрал микроприложение Phalcon.

Теперь я хотел бы добавить 1 представление, в значительной степени интерфейс для взаимодействия с API, а не для просмотра JSON.

Я новичок в phalcon и не знаю, как передать параметр в представление, когда использую микроприложение phalcon. Мне просто нужно что-то простое:

$app->get('/', function () {
    //some database query
    //variable
    //pass variable to views/index.phtml
    require 'views/index.phtml'; 
});

person Arthur    schedule 05.08.2016    source источник


Ответы (1)


Вы можете сделать это легко, загрузив простое представление в свой DI.

$di->set('view', function () {
    $view = new \Phalcon\Mvc\View\Simple();
    $view->setViewsDir('/path/to/app/views/');
    return $view;
}, true);

А затем используйте его для загрузки вашего представления.

$app->get('/', function () use ($app) {
    // other logic
    echo $app['view']->render('index', ['key' => 'value']);
});

Первый параметр в $app['view']->render принимает местоположение вашего представления (внутри определенного setViewsDir). Второй параметр — это массив для назначения переменных вашему представлению.

person Timothy    schedule 05.08.2016
comment
Спасибо. Как бы я назвал переменную в .phtml? - person Arthur; 06.08.2016
comment
Как обычно. В моем примере все просто и ясно: $key - person Timothy; 06.08.2016
comment
Возможно, использовать вольт? Это как веточка, но намного быстрее. - person Juri; 06.08.2016
comment
@Juri, определите быстрее, phtml будет компилироваться быстрее, чем volt (или любой другой механизм шаблонов). Но volt конечно лучше поддерживать в долгосрочной перспективе! :) - person Timothy; 06.08.2016
comment
Я имею в виду, что volt намного быстрее, чем twig :) И синтаксис и т. Д. Имхо намного лучше. - person Juri; 07.08.2016
comment
Просто хочу добавить комментарий, у меня были проблемы с -›setViewsDir. У меня это сработало, когда я удалил эту строку и просто отрендерил views/index. Ошибка была странной, поскольку она также указывала путь ошибки к моему образу докера. - person Arthur; 08.08.2016