2013-11-27 2 views
2

Я использую Klein php routing для простого приложенияPHP маршрутизации: сообщения дисплея вспышки в View (Klein)

документация нормальна для использования библиотеки, однако это не очень хорошо, как для реализации мнений

например, я хочу, чтобы отобразить моментальное сообщение об успешном/ошибки/предупреждения и т.д.

я понимаю, как Клейн может хранить вспышку, как это сообщение об ошибке в документации

$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, я не могу видеть, как осуществить это на мой взгляд

я, конечно, думаю, что есть рендер() или что-то я не хватает ... я имею в виду иначе зачем называть все это, когда я могу просто сохранить свой собственный сбщ в сеансе, не делает много смысла для меня

в любом случае, любая помощь всегда приветствуется

ответ

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

Похоже, он возвращает массив вспышек , сгруппированные по типу, чтобы вы могли их пропустить и повторить. Если вы используете систему шаблонов 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-master, а не ветви 2.0.x, они говорят вам использовать на странице GitHub. С тех пор появилось много кода (по крайней мере, мы знаем, что он не заброшен, не так ли?). Я обнаружил, что ветвь dev-master намного менее сломана.

+0

Спасибо за исправление div, мое плохое! – eimajenthat