4

在他们的新文档中,没有任何关于 Flash 消息的内容。

我从他们的 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 }}

感谢帮助!

4

1 回答 1

3

您可以通过 render 方法在 data 属性中添加 flash 消息:

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

或者您可以添加一个中间件并将您的 flash 实例添加到 twig 参数中

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

那么应该可以使用 twig 模板访问消息

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

于 2016-02-04T20:06:15.023 回答