SlimPHP v3如何在视图上显示flash消息

时间:2016-02-04 19:49:42

标签: php twig slim flash-message twig-extension

在他们的新文档中没有任何闪存消息。

我从他们的github存储库(slimphp / Slim-Flash)安装了flash扩展。一切正常,我可以添加消息,也可以收到这些消息。

// Adding a message
$this->flash->addMessage('test', 'This is a message');

// Getting a message
$this->flash->getMessage('test')[0];

但这只适用于路线。当然我希望在我的视图中显示这些消息。

但我只是不知道如何在树枝视图中获取此消息。

我已经尝试过了:

{{ container.flash.message('test')[0] }}
{{ container.flash.getMessage('test')[0] }}
{{ this.flash.message('test')[0] }}
{{ this.flash.getMessage('test')[0] }}
{{ flash.message('test')[0] }}
{{ flash.getMessage('test')[0] }}
{{ app.flash.message('test')[0] }}
{{ app.flash.getMessage('test')[0] }}
{{ container.flash.test }}

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您可以在render方法的数据属性中添加flash消息:

$this->view->render($res, 'path/to/template.twig', [
    'flash' => $this->flash
]);

或者您可以添加中间件并将Flash实例添加到树枝参数

$app->add(function ($request, $response, $next) {
    $this->view->offsetSet("flash", $this->flash);
    return $next($request, $response);
});

然后应该可以使用

访问树枝模板内的消息

{{ flash.getMessage('test') }}