4

新しいドキュメントには、フラッシュ メッセージに関する記述はありません。

github リポジトリ (slimphp/Slim-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 属性内にフラッシュ メッセージを追加できます。

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

または、ミドルウェアを追加して、フラッシュ インスタンスを twig パラメータに追加することもできます。

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

次に、小枝テンプレート内のメッセージにアクセスできるはずです

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

于 2016-02-04T20:06:15.023 に答える