使用运行 php artisan make:auth
后生成的默认设置,我现在想知道如何控制我需要在用户登录时向他显示的 flash 消息。
到目前为止,我已尝试将此代码添加到默认的 AuthController
:
public function authenticated($request, $user)
{
flash('Welcome back ' . $user->username . ', you have been logged in');
}
但这会导致我的 Chrome 浏览器出现太多重定向错误。如何在不创建自定义 LoginController
或覆盖 AuthController
中的完整 login
方法的情况下刷新自定义消息?
最佳答案
Laravel 5.4
登录/注销
从 vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php
复制 authenticated
和 logout
方法。
粘贴到 app/Http/Controllers/Auth/LoginController.php
。
添加即显消息。
不要忘记导入 Illuminate\Http\Request
。
use Illuminate\Http\Request;
class LoginController extends Controller
{
/**
* The user has been authenticated.
*
* @param \Illuminate\Http\Request $request
* @param mixed $user
* @return \Illuminate\Http\Response
*/
protected function authenticated(Request $request, $user)
{
return redirect('users/' . $user->id)->with('status', __('You logged in.'));
}
/**
* Log the user out of the application.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function logout(Request $request)
{
$this->guard()->logout();
$request->session()->flush();
$request->session()->regenerate();
return redirect('/')->with('status', __('You logged out.'));
}
注册
从 vendor/laravel/framework/src/Illuminate/Foundation/Auth/RegistersUsers.php
复制 registered
方法。
粘贴到 app/Http/Controllers/Auth/RegisterController.php
。
添加即显消息。
不要忘记导入 Illuminate\Http\Request
。
use Illuminate\Http\Request;
class RegisterController extends Controller
{
/**
* The user has been registered.
*
* @param \Illuminate\Http\Request $request
* @param mixed $user
* @return \Illuminate\Http\Response
*/
protected function registered(Request $request, $user)
{
return redirect('users/' . $user->id)->with('status', __('You were registered.'));
}
关于php - 拉维尔 5.2 : Display a session flash message after user login/logout and registration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38530758/