在Zend Framework 2 Expressive中显示flash消息的正确方法是什么

时间:2017-06-13 02:58:15

标签: php zend-framework zend-expressive

我想设置闪光信息(超薄/闪光)。我看到了引用here。 我制作了以下中间件来注册flash消息。

use Interop\Http\ServerMiddleware\DelegateInterface;
use Zend\Diactoros\Response\RedirectResponse;

function($request, DelegateInterface $delegate)
{
    $flash = $request->getAttribute('flash');
    $flash->addMessage('message', 'Hello World!');

    return new RedirectResponse('/other-middleware');
}

问题是如何从视图模板中获取此Flash消息? 该参考文献写在这里,但我不确定我应该在哪里放置此代码以及如何显示闪存。

use Interop\Http\ServerMiddleware\DelegateInterface;

function($request, DelegateInterface $delegate)
{
    $flash = $request->getAttribute('flash');
    $messages = $flash->getMessages();
    // ...
}

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

提示位于该代码块下方的句子中:

  

从那里开始,就是向模板提供flash消息。

您需要将$messages传递给您的视图脚本才能呈现它们。 类似的东西:

return new HtmlResponse(
  $this->renderer->render(
    $template,
    ['messages' => $messages]
  )
);