Heim  >  Fragen und Antworten  >  Hauptteil

Der Laravel-Controller kann keine Sitzungsvariablen zurückgeben

<p>Ich lerne Laravel und versuche, eine Erfolgsmeldung in die Sitzung einzufügen und sie in der Ansicht anzuzeigen, aber es scheint nicht zu funktionieren</p> <p>Dies ist mein Code im Ansichtsbereich</p> <pre class="brush:php;toolbar:false;"><div class="col-sm-12 col-xl-12"> @if (session()->has('msg')) <h5> {{ session('msg') }}</h5> @endif</pre> <p>Dies ist die Controller-Funktion, die ich verwende, um neue Inhalte hinzuzufügen und Nachrichten in die Sitzung einzufügen</p> <pre class="brush:php;toolbar:false;">öffentlicher Funktionsspeicher (CatalogRequest $request) { $status=$this->catalog->insert([ 'name' => $request->name, 'status' => $request->status ]); if($status){ $msg = "Verzeichnis erfolgreich hinzugefügt"; $color = 'Erfolg'; }anders{ $msg = "Verzeichnis konnte nicht hinzugefügt werden"; $color = 'rot'; } session()->put('msg',$msg); Return Redirect('Katalog'); }</pre></p>
P粉998100648P粉998100648457 Tage vor600

Antworte allen(1)Ich werde antworten

  • P粉604848588

    P粉6048485882023-08-14 12:51:02

    尝试这个

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

    在blade模板中

    <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()等方法。 此外,请仔细阅读文档,你将从中获得很多想法。

    Antwort
    1
  • StornierenAntwort