用laravel 5传递多个闪光警告信息


pass multiple flash warning message with laravel 5

Laravel只能按消息类型(危险、警告、成功、信息)显示一条消息。有一种解决方案可以传递许多警告消息(例如):

在控制器中发送一个选项卡:

$messagesSuccess = [
    'test success 1',
    'test success 2'
];
$messagesInfo = [
    'test info 1',
    'test info 2'
];
$messagesWarning = [
    'test warning 1',
    'test warning 2'
];
$messagesError = [
    'test error 1',
    'test error 2'
];
$request->session ()->flash ( 'alert-info', $messagesInfo );
$request->session ()->flash ( 'alert-success', $messagesSuccess );
$request->session ()->flash ( 'alert-warning', $messagesWarning );
$request->session ()->flash ( 'alert-danger', $messagesError );

在php视图中:

            <div class="flash-message">
            <ul>
                @foreach (['danger', 'warning', 'success', 'info'] as $type_message)
                    @if(Session::has('alert-' . $type_message))
                        @foreach (Session::get('alert-' . $type_message) as $message)
                        <li><p class="alert alert-{{ $type_message }}">{{ $message }}</p></li>
                        @endforeach
                    @endif
                @endforeach
            </ul>
        </div>
        @endif <!-- end .flash-message -->

css的一个例子:

.flash-message {
    border-width: 0.2 em;
    border-style: dashed;
    border-color: grey;
}
.alert {
    font-size: 1 em;
    font-weight: 800;
}
.alert-danger {
    color : #ff6c00;
}
.alert-warning {
    color : #FFD700;
}
.alert-success {
    color : green;
}
.alert-info {
    color : blue;
}

我知道这是一个古老的消息,-但我刚刚问了一个类似的问题,并在这里得到了答案。

如果我理解正确的话,那么键(flash()的第一个参数)只是用来告诉消息来自哪里。第二个参数可以是一个数组,它可以包含正确显示消息所需的内容。例如,我有一个像这样的flash消息:

session()->flash( 'file_was_not_readable', [
   'title'   => 'Error reading uploaded file'
   'message' => 'Blah di ba doo baa, di ba dee daa'
   'type'    => 'warning', 
  ]);