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

rat*_*atm 5 php flash-message 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 );
Run Code Online (Sandbox Code Playgroud)

并在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 -->
Run Code Online (Sandbox Code Playgroud)

一个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;
}
Run Code Online (Sandbox Code Playgroud)

Zet*_*eth 2

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

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

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