Orange Lux
Orange Lux

Reputation: 1977

Laravel : transforming a request into another

I want to log my users as soon as they register. here's my UserController's code (which works) :

<?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';
    }
}

I feel I'm doing something ugly with my $loginRequest. Is there a neater way to do the same ? Aka transform my Register request into a Login request ?

Upvotes: 2

Views: 161

Answers (2)

Bikash
Bikash

Reputation: 1938

As soon as user register you can use this snippet of code to attempt a login

if (Auth::attempt(['email' => request('email'), 'password' => request('password')])) {

return Redirect::route('dashboard'); }

So the code should be

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');
   }

Upvotes: 0

FULL STACK DEV
FULL STACK DEV

Reputation: 15941

You are simply trying to logged in user into his account after the registration so use Auth::login($user)

class UserController extends Controller
{
    public function register(Register $request)
    {
        $user =  User::create($request->all());

       \Auth::login($user);

    }

}

Upvotes: 1

Related Questions