0
我正在2.6.1版本中使用PHP Slim Framework(由于升级PHP没有更新版本的一些限制),并且在尝试使用在try/catch块内的flash消息,当模板被呈现时,消息不会存储在会话中。狭窄的Flash消息不工作尝试{} catch(){}
$objValidation = FormValidator::isValidData($post);
if($objValidation->bolHasError)
{
$app->flash('objValidation', serialize($objValidation));
$app->flash('selectedData', $post);
return $app->redirect('/app/edit/form/components/');
}
但是,如果我开始使用try块,像下面的话:
例如,(当验证得到一些错误页面重定向与所需的闪光消息)下面的代码工作正常闪光灯消息不保存在$ _SESSION(或甚至在{{闪存}}模板):
try {
$objValidation = FormValidator::isValidData($post);
if($objValidation->bolHasError)
{
$app->flash('objValidation', serialize($objValidation));
$app->flash('selectedData', $post);
return $app->redirect('/app/edit/form/components/');
}
# some other stuff processed here...
}
catch(Exception $e) {
# do something
}
PS:会话存储在PHP自身的方式(在session_start())。
以这种方式使用Flash消息的范围有任何限制吗?
您是否正面看到脚本的流程正在通过第二个示例中的$ app-> flass'部分? – amenadiel
@amenadiel是的。我试图模拟许多种错误。在所有情况下,执行该部分代码时都会达到degug行。我相信最简单的方法是提出并捕获一个异常(一旦我无法使用try块,因为该块中有许多数据库操作。 –