2015-03-25 76 views

回答

1

对于Flash消息的工作,您需要使用会话,或者默认的PHP会话处理程序或Slim附带的SessionCookie,如果您不使用SessionCookie,则需要使用session_start()手动启动PHP会话。

有几个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会给阵列与“测试”键和“这是消息'价值。在枝杈我就可以在上述所有与

{{flash.test}} 

文档来获取这样的:http://docs.slimframework.com/#Flash-Messaging-Overview

+0

你肯定'flash'在视图中直接访问? – 2015-03-26 13:40:20

+0

是的。我已将示例更改为包含模板 – Tuim 2015-03-26 14:01:47

+0

session_start()是我的问题!谢谢! – Eddie 2015-07-29 16:29:55

相关问题