Laravel 5.4以不同方式显示闪存错误和成功消息

Hei*_*del 13 laravel

来自我的PostController的方法

public function store(PostRequest $request)
    {
        if (Post::create($request->all())) {
            $request->session()->flash('status', 'Post was successfully added!');
        } else {
            $request->session()->flash('status', 'Error!');
        }
        return redirect('/');
    }
Run Code Online (Sandbox Code Playgroud)

索引视图

<?php if(session()->has('status')){
        echo '<div style="text-align: center">';
        echo session()->get('status');
        echo '</div>';
    }?>
Run Code Online (Sandbox Code Playgroud)

如何以不同的方式显示错误和成功消息?

Par*_*ras 20

你可以使用这样的东西:

public function store(PostRequest $request) {
    if (Post::create($request->all())) {
        $request->session()->flash('message.level', 'success');
        $request->session()->flash('message.content', 'Post was successfully added!');
    } else {
        $request->session()->flash('message.level', 'danger');
        $request->session()->flash('message.content', 'Error!');
    }
    return redirect('/');
}
Run Code Online (Sandbox Code Playgroud)

在您的刀片文件中:

@if(session()->has('message.level'))
    <div class="alert alert-{{ session('message.level') }}"> 
    {!! session('message.content') !!}
    </div>
@endif
Run Code Online (Sandbox Code Playgroud)

上面的代码使用bootstrap的alert css类进行样式设计,灵感来自Jeffrey Way的Laracasts Flash包


Muh*_*zad 10

您可以通过以下方式显示Flash消息:

在你的控制器中:

$request->session()->flash('success', 'Record successfully added!');
//OR
$request->session()->flash('warning', 'Record not added!');
Run Code Online (Sandbox Code Playgroud)

在你的视线中:

@foreach (['danger', 'warning', 'success', 'info'] as $key)
 @if(Session::has($key))
     <p class="alert alert-{{ $key }}">{{ Session::get($key) }}</p>
 @endif
@endforeach
Run Code Online (Sandbox Code Playgroud)