Laravel 5.1 - 将成功会话传递给帮助者

时间:2015-12-01 13:13:49

标签: php laravel-5.1

我总是在视图中显示成功消息:

@if(Session::has('success'))
    <div class="alert alert-success">
        {{ Session::get('success') }}
    </div>
@endif

我现在正在Laravel 5.1中开发一个新的Web应用程序,我想使用帮助程序来显示消息(我不想在所有视图中复制HTML代码)。错误消息工作正常,但我的问题是如何从帮助程序类访问Session?

这是我的MessageHelper,函数displaySuccessMessage()不起作用:

<?php

namespace App\Helpers;

class MessageHelper {

    public static function displayErrors($errors) {

        $str = '<div class="alert alert-danger">';

        if($errors->has())
        {
            foreach ($errors->all() as $error)
            {
                $str .= sprintf('<p><i class="fa fa-times"></i> %s</p>', $error);
            }
            $str .= '</div>';
            return $str;
        }
        return null;
    }

    public static function displaySuccessMessage()
    {
        // This is not doable
        if(!Session::has('success'))
            return;

        return sprintf('<div class="alert alert-success">%s</div>', Session::get('success'));
    }
}

可以这样做吗?

1 个答案:

答案 0 :(得分:1)

您应该在命名空间声明

之后添加use Session;

所以它会像:

<?php

namespace App\Helpers;

use Session;

class MessageHelper {

    public static function displayErrors($errors) {

        $str = '<div class="alert alert-danger">';

        if($errors->has())
        {
            foreach ($errors->all() as $error)
            {
                $str .= sprintf('<p><i class="fa fa-times"></i> %s</p>', $error);
            }
            $str .= '</div>';
            return $str;
        }
        return null;
    }

    public static function displaySuccessMessage()
    {
        // This is not doable
        if(!Session::has('success'))
            return;

        return sprintf('<div class="alert alert-success">%s</div>', Session::get('success'));
    }
}