auth控制器中的flash消息

时间:2015-07-01 21:16:40

标签: laravel-5

我正在寻找更好的解决方案,在登录/注销/注册后显示flash消息。这些方法通过trait AuthenticatesAndRegistersUsers存储在AuthController中。我的第二个条件是不要编辑AuthenticatesAndRegistersUsers。

我实际上是黑客攻击,但我对此并不满意。 你有更好的主意吗?

应用/ HTTP /控制器/ AUTH / authcontroller.php

public function postLoginwithFlash(Request $request)
{
return $this->postLogin($request)->with('flash_message','You are logged');
}

routes.php

Route::post('login', ['as' => 'login', 'uses' => 'Auth\AuthController@postLoginWithFlash']);

观看 ofc

@if (Session::has('flash_message'))
{{ Session::get('flash_message') }}
@endif

2 个答案:

答案 0 :(得分:1)

没有'原生'这样做的方式。无论哪种方式,您都必须更改/编辑路线。

您可以在routes.php中实现所有内容,或者按照您已经提出的方式执行 - 在AuthController中创建一个新方法。从本质上讲,它是一回事。

但是,我建议您进行适当的手动检查,而不是返回postLogin(),例如:

if (Auth::attempt(['email' => $request->input('email'), 'password' => $request->input('password')])) {
     // Authentication passed...
     return redirect()->route('dashboard');
} else {
     return redirect()->refresh()->with('error', 'Those are not correct credentials!');
}

这样,您可以在成功和错误情况下添加不同的Flash消息,而您建议的代码将显示相同的消息,而不管结果如何。

答案 1 :(得分:0)

您可以编辑语言文件 ./ resources / lang / en / auth.php ,然后更改此行

'failed' => 'Your custom login error message',