通过 session 发送的消息未显示

Message sending through session isn't showing

在我的 laravel-7 应用程序中,我通过控制器在 blade 中发送针对无效登录的自定义消息。但 blade 中未显示消息。如果我做错了什么,也会尾随我。 在 blade

<div class="card-body">

                 
                    @if(session()->has('message'))
                        <div class="alert alert-{{session('type')}}">
                            <li>{{session('message')}}</li>
                        </div>
                    @endif



                    <form action="{{route('login')}}" method="post" class="form">
                        @csrf
                        <div class="form-group">
                            <label for="email">Email address</label>
                            <input type="email" name="email" class="form-control" id="email" placeholder="Enter email" value="{{old('email')}}">
                        </div>
                        <div class="form-group">
                            <label for="password">Password</label>
                            <input type="password" name="password" class="form-control" id="password" placeholder="Password">
                        </div>
                        <div class="form-group">
                            <button type="submit" class="btn btn-primary btn-block">Login</button>
                        </div>
                    </form>

在授权控制器中

 public function processlogin(Request $request)
{
    $this->validate($request,[
        'email'=>'required|email',
        'password'=>'required|min:6',
    ]);

    $credentials=$request->except(['_token']);

    if (Auth::attempt($credentials)){
        return redirect()->route('index');
    }
        $this->setErrorMessage('Invalid Credentials.');
        return redirect()->back();

}

在控制器中

public function setErrorMessage($message):void
{
    session()->flash($message);
    session()->flash('type','danger');
}

您没有命名闪烁的变量 message。您正在将 $message 的值作为第一个参数传递给 flash,这是键的名称。

session()->flash('message', $message);