我正在寻找更好的解决方案,在登录/注销/注册后显示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
答案 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',