我总是在视图中显示成功消息:
@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'));
}
}
可以这样做吗?
答案 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'));
}
}