Php Laravel 5.2:在用户登录/注销和注册后显示会话闪存消息
使用运行Php Laravel 5.2:在用户登录/注销和注册后显示会话闪存消息,php,flash,authentication,laravel-5,notifications,Php,Flash,Authentication,Laravel 5,Notifications,使用运行php artisan make:auth后生成的默认设置,我现在想知道如何控制用户登录时需要显示的flash消息 到目前为止,我已尝试将此代码添加到默认的AuthController: public function authenticated($request, $user) { flash('Welcome back ' . $user->username . ', you have been logged in'); } /**
php artisan make:auth
后生成的默认设置,我现在想知道如何控制用户登录时需要显示的flash消息
到目前为止,我已尝试将此代码添加到默认的AuthController
:
public function authenticated($request, $user)
{
flash('Welcome back ' . $user->username . ', you have been logged in');
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return User
*/
protected function create(array $data)
{
$successmessage = 'you are now successfully registered!';
flash()->overlay('Yes', $successmessage, 'success');
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
/**
* Log the user out of the application.
*
* @return \Illuminate\Http\Response
*/
public function logout()
{
Auth::logout();
flash()->info('Bye', 'You have been successfully logged out!');
return redirect(property_exists($this, 'redirectAfterLogout') ? $this->redirectAfterLogout : '/');
}
/**
* Function called after user logs in
* @return \Illuminate\Http\RedirectResponse
*/
protected function authenticated() {
$successmessage = 'Hej '.Auth::user()->name.', you are logged in!';
flash()->success('Hello', $successmessage);
return redirect()->intended($this->redirectPath());
}
但这会在我的Chrome浏览器中导致太多重定向错误。如何在不创建自定义
LoginController
或覆盖AuthController
中的完整login
方法的情况下刷新自定义消息?我必须在AuthController
中覆盖以下方法:
public function authenticated($request, $user)
{
flash('Welcome back ' . $user->username . ', you have been logged in');
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return User
*/
protected function create(array $data)
{
$successmessage = 'you are now successfully registered!';
flash()->overlay('Yes', $successmessage, 'success');
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
/**
* Log the user out of the application.
*
* @return \Illuminate\Http\Response
*/
public function logout()
{
Auth::logout();
flash()->info('Bye', 'You have been successfully logged out!');
return redirect(property_exists($this, 'redirectAfterLogout') ? $this->redirectAfterLogout : '/');
}
/**
* Function called after user logs in
* @return \Illuminate\Http\RedirectResponse
*/
protected function authenticated() {
$successmessage = 'Hej '.Auth::user()->name.', you are logged in!';
flash()->success('Hello', $successmessage);
return redirect()->intended($this->redirectPath());
}
就这样!请注意,我使用的是自定义闪存设置。您可以使用默认值或自己的Laravel 5.4
登录/登出
从vendor/laravel/framework/src/illible/Foundation/Auth/AuthenticatesUsers.php中复制authenticated
和logout
方法
粘贴到app/Http/Controllers/Auth/LoginController.php
添加flash消息。
不要忘记导入illumb\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.'));
}
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.'));
}
登记
从vendor/laravel/framework/src/light/Foundation/Auth/RegistersUsers.php中复制registered
方法
粘贴到app/Http/Controllers/Auth/RegisterController.php
添加flash消息。
不要忘记导入illumb\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.'));
}
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.'));
}
检查/app/resources/lang/en/auth.php
文件中的一些内容。不确定它们是否都是可定制的,或者是否有些是硬编码的。