2016-02-04 56 views
3

在他們的新文檔中,沒有任何關於Flash消息的內容。SlimPHP v3如何在視圖中顯示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 }} 

感謝您的幫助!

回答

1

您可以從渲染方法中添加閃信的數據屬性裏面:

$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') }}

+0

您的中間件解決方案很好,謝謝。但不是使用$ app - > ...你需要使用$ this - > ...在改變它之後,它工作正常。 – deflox

+0

@deflox好吧,我編輯它。 – jmattheis