Я использую механизм шаблонов Slim Framework и Twig, я не могу понять, как использовать «flash vars» в представлении. Я попыталсяКак загрузить Slim flash vars в Twig
{{flash.prev}}
, но он не работает.
Я использую механизм шаблонов Slim Framework и Twig, я не могу понять, как использовать «flash vars» в представлении. Я попыталсяКак загрузить Slim flash vars в Twig
{{flash.prev}}
, но он не работает.
Для работы флеш-сообщений вам необходимо использовать сеансы, либо обработчик сеанса PHP по умолчанию, либо SessionCookie, который поставляется с Slim, если вы не используете SessionCookie, вам нужно запустить сеанс PHP вручную с помощью session_start();
Есть несколько функций Flash, лично я использую flash() и flashNow() в основном. flash() дает вам переменную в следующем ответе (например, после перенаправления), тогда как flashNow() дает вам переменную в текущем ответе.
session_start(); //I manually start the session here.
$app->get('/', function() use ($app) {
$app->flash('test', 'This is the message');
$app->redirect($app->urlFor('test'));
});
$app->get('/test', function() use ($app) {
var_dump($_SESSION['slim.flash']);
$app->render('test.twig');
})->name('test');
И в файле шаблонов/test.twig
<h1>{{flash.test}}</h1>
В приведенном выше примере вы увидите, что var_dump даст массив с ключом «тест» и «Это сообщение ' стоимость. В Twig я смог бы принести это с
{{flash.test}}
документации на все вышеперечисленное: http://docs.slimframework.com/#Flash-Messaging-Overview
Вы уверены, что 'flash' непосредственно доступен в представлении? –
Да. Я изменил свой пример, чтобы включить шаблон – Tuim
session_start() был моей проблемой! Спасибо! – Eddie