我想在用户注册后立即登录。这是我的UserController的代码(有效):
<?php
namespace App\Http\Controllers;
use App\Http\Requests\Login;
use App\Http\Requests\Register;
use App\User;
class UserController extends Controller
{
public function register(Register $request)
{
User::create($request->all());
$loginRequest = new Login();
$loginRequest['email'] = $request->get('email');
$loginRequest['password'] = $request->get('password');
return $this->login($loginRequest);
}
public function login(Login $request)
{
return 'ok';
}
}
我觉得自己的$loginRequest
做得很丑。有没有更整洁的方法可以做到这一点? Aka将我的Register请求转换为Login请求?
答案 0 :(得分:0)
您只是在注册后尝试登录用户,因此请使用Auth::login($user)
class UserController extends Controller
{
public function register(Register $request)
{
$user = User::create($request->all());
\Auth::login($user);
}
}
答案 1 :(得分:0)
用户注册后,您就可以使用此代码段尝试登录
if(Auth :: attempt(['email'=> request('email'),'password'=> request('password')])){
return Redirect :: route('dashboard'); }
所以代码应该是
User::create($request->all());
$loginRequest = new Login();
$loginRequest['email'] = $request->get('email');
$loginRequest['password'] = $request->get('password');
if (Auth::attempt(['email' => $request->get('email'),
'password' => $request->get('password')])) {
return Redirect::route('dashboard');
}