SlimPHP v3 如何在视图中显示 flash 消息
SlimPHP v3 how to display flash message on view
在他们的新文档中,没有任何关于即显消息的内容。
我从他们的 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 }}
感谢帮助!
您可以在 render 方法的数据属性中添加 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') }}
在他们的新文档中,没有任何关于即显消息的内容。
我从他们的 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 }}
感谢帮助!
您可以在 render 方法的数据属性中添加 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') }}