代码之家  ›  专栏  ›  技术社区  ›  Nguyen Minh Duc FGW HN

无法从Laravel中的Controller获取会话变量返回

  •  0
  • Nguyen Minh Duc FGW HN  · 技术社区  · 3 年前

    我正在学习Laravel,我试图在会议上传达成功的信息,并展示出来,但似乎没有奏效

    这是我在视图部分的代码

    <div class="col-sm-12 col-xl-12">
                @if (session()->has('msg'))
                    <h5> {{ session('msg') }}</h5>
                @endif
    

    这是我用来添加新消息和将消息放入会话的Controller函数

    public function store(CatalogRequest $request)
    {
    
        $status=$this->catalog->insert([
            'name' => $request->name,
            'status' => $request->status
        ]);
    
        if($status){
            $msg = "Add Catalog Successfullly";
            $color = 'success';
        }else{
            $msg = "Add Catalog failed";
            $color = 'red';
        }
    
        session()->put('msg',$msg);
    
        return redirect('catalog');
    }
    
    1 回复  |  直到 3 年前
        1
  •  0
  •   Sifat Kazi    3 年前

    试试这个

    session()->flash('msg', ['text' => $msg, 'color' => $color]);
    

    在刀刃上

    <div class="col-sm-12 col-xl-12">
        @if (session()->has('msg'))
            <h5 style="color: {{ session('msg.color') }}">{{session('msg.text') }}</h5>
        @endif
    </div>
    

    在这段代码中,我确保包含正确的导入,使用正确的方法插入数据,并使用flash()方法而不是put()将消息临时存储在会话中。此外,消息的颜色也存储在会话中,以便更好地控制样式。

    此外,您可以尝试将其与绑定 WITH 方法

    return back()->with('msg', 'Your message');
    

    你可以做到 redirect() redirect()->route() 等 此外,请查看 documentation 从那里你会有很多想法。

    推荐文章