如何在Laravel中使用默认的AuthController进行Session :: flash

时间:2016-07-20 20:09:29

标签: php laravel

在这样的(我认为的)小事上浪费了一小时后,我需要你的帮助。

我使用php artisan make:auth命令与Laravel进行了快速启动。然后我在login中重新定义了AuthController方法。现在它看起来像这样:

protected function login(Request $request) {
    if (Auth::attempt(["name" => $request->username, "password" => $request->password])) {
        return Redirect::route("home")->with("message", "Zalogowano");
    } else {
        return Redirect::route("get.login")->with("message", "Nie zalogowano");
    }
}

在我看来,我已经{{ Session::get("message") or "" }}

我的信息没有显示出来。

我也试过Session::flash("message", "message string"),效果相同。

我有什么想法可以在(联合国)成功登录后显示消息?

PS。应该提到登录和退出工作正常。

3 个答案:

答案 0 :(得分:0)

在模板中试试{{$ message}}。

当您使用 - > with(“varnamehere”,“value”)在重定向结束时刷新数据时,您只需使用$ varnamehere访问模板中的变量。

该变量只是存在,可以在模板中使用。

手册中似乎没有明确说明这一点的部分。

答案 1 :(得分:0)

在您的视图模板中尝试:

@ if(session() - >有(' message')?session() - > get(' message'):"" )@endif

如果设置了它将打印消息..

希望有所帮助......

答案 2 :(得分:0)

您的路由是否在'web'中间件组(包括Auth路由)中定义? 'web'中间件组处理启动会话。更具体地说,中间件\Illuminate\Session\Middleware\StartSession::class处理启动会话。没有会话,没有消息。您的路线应该包含在路线组中,如下所示:

Route::group(['middleware' => 'web'], function () {
  // Define routes here
});

查看app\Http\Kernel.php以查看此中间件组中包含哪些中间件类并深入了解它们。