2013-11-27 34 views
2

我使用Klein php routing一個簡單的應用程序PHP路由:

的文件是確定使用庫視圖(克萊恩)顯示的提示信息,但它是不擅長如何實施意見

比如我要顯示成功/錯誤/警告等閃光燈消息

我明白克萊恩如何存儲閃存像文檔

$klein->respond(function ($request, $response, $service, $app) use ($klein) { 
    // Handle exceptions => flash the message and redirect to the referrer 
    $klein->onError(function ($klein, $err_msg) { 
     $klein->service()->flash($err_msg); 
     $klein->service()->back(); 
    }); 
此錯誤消息

所以我成功的消息我這樣做

$service->flash("Success", $type = 'success'); 

,但不是在$ _SESSION __flash的foreach等,我不能看到如何實現這個在我看來

我當然認爲這是一個渲染()或者我丟失的東西......我的意思是不然爲什麼叫這一切的時候,我可以只存儲自己的味精在會話中,犯規多大意義,我

不管怎麼說,任何幫助總是讚賞

回答

4

如果您看看最新版本的文檔離子,有一種方法Klein\ServiceProvider::flashes()

http://chriso.github.io/klein.php/docs/classes/Klein.ServiceProvider.html#method_flashes

文檔說它檢索並清除所有的閃光消息,或給定類型的所有閃存消息。

這不與Klein\ServiceProvider::flash()混淆,還增加了一個閃蒸消息:

http://chriso.github.io/klein.php/docs/classes/Klein.ServiceProvider.html#method_flashes

這裏的源:

https://github.com/chriso/klein.php/blob/master/src/Klein/ServiceProvider.php#L179

看起來它返回閃爍陣列,按類型分組,所以你可以對它們進行foreach和回顯。如果您使用的是Klein模板系統(在您的情況下,您將使用$klein->service->render($myTemplateName))呈現模板,然後您可以從模板調用ServiceProvider作爲$ this。

因此,在您的模板中,您可能會看到如下內容:

<? foreach($this->flashes() as $type=>$messages): ?> 
    <? foreach($messages as $msg): ?> 
     <div class="alert alert-<?= $type ?>"><?= $msg ?></div> 
    <? endforeach; ?> 
<? endforeach; ?> 

很顯然,你不必使用備用控制結構的語法,但我喜歡我的模板中使用它。它是在一個dev的商店,我工作的編碼標準的一部分,我通過它作爲我自己的。

只是一個頭。文檔似乎代表dev-master中的代碼,而不是他們告訴你在GitHub頁面上使用的2.0.x分支。從那時起,很多代碼似乎都被移動了(至少我們知道它並未被放棄,對吧?)。我發現dev-master分支要少得多了。

+0

感謝您修復div,我的壞! – eimajenthat