【问题标题】:PHP routing: display flash messages in View (Klein)PHP 路由:在 View 中显示 flash 消息 (Klein)
【发布时间】:2013-12-13 11:13:11
【问题描述】:

我将Klein php routing 用于一个简单的应用程序

文档可以使用该库,但是不擅长如何实现视图

例如,我想在成功/错误/警告等方面显示一条闪光消息

我了解 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 上的 foreach 之外,我看不到如何在我的视图中实现它

我当然认为有一个 render() 或我缺少的东西......我的意思是否则为什么当我可以在会话中存储我自己的 msg 时调用所有这些,对我来说没有多大意义

不管怎样,任何帮助总是被感激的

【问题讨论】:

    标签: php view routing klein-mvc


    【解决方案1】:

    如果你查看最新版本的文档,有一个方法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

    看起来它返回了一个按类型分组的 flash 数组,因此您可以 foreach 和 echo 它们。如果您使用的是 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 中的代码,而不是他们告诉您在 GitHub 页面上使用的 2.0.x 分支。从那时起,似乎有很多代码被转移了(至少我们知道它没有被放弃,对吧?)。我发现 dev-master 分支的损坏要少得多。

    【讨论】:

    • 感谢您修复 div,我的错!
    猜你喜欢
    • 2019-06-29
    • 1970-01-01
    • 2014-12-29
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    • 1970-01-01
    • 2015-10-22
    • 2019-11-05
    相关资源
    最近更新 更多