2015-03-25 5 views

ответ

1

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

+0

Вы уверены, что 'flash' непосредственно доступен в представлении? –

+0

Да. Я изменил свой пример, чтобы включить шаблон – Tuim

+0

session_start() был моей проблемой! Спасибо! – Eddie

Смежные вопросы