Como cambiar el login a username y no con email en laravel 5.4
paso 1:
ir a tudominio/app/Http/Controllers/Auth/LoginController.php y agregar,
public function username()
{
return 'username';
}
esto puede ser reemplazado por cualquier campo de tu base de datos de la table users, solo tienes que reemplazar el nombre del campo username.
el archivo completo quedaria asi:
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = '/';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest', ['except' => 'logout']);
}
public function username()
{
return 'username';
}
}
paso 3:
ir a la vista de registro de usuarios tudominio/resources/view/auth/register.blade.php
y agregar el input username, puedes copiar el código del input name.
ir a tudominio/app/Http/Controllers/Auth/LoginController.php y agregar,
public function username()
{
return 'username';
}
esto puede ser reemplazado por cualquier campo de tu base de datos de la table users, solo tienes que reemplazar el nombre del campo username.
el archivo completo quedaria asi:
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = '/';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest', ['except' => 'logout']);
}
public function username()
{
return 'username';
}
}
paso dos:
ir a la vista donde esta la pagina de login, tudominio/resources/view/auth/login.blade.php
y cambiar el name del input de email por él name username o el nombre del campo que estés utilizando.
Ya con esto puedes loguearte en laravel.
Si quieres agregar ese campo en el registro de usuarios solo tienes que seguir estos pasos:
paso 1:
ir a tudominio/app/Http/Controllers/Auth/RegisterController.php (seguimos el ejemplo agregando el campo username)
el archivo quedaria asi:
<?php
namespace App\Http\Controllers\Auth;
use App\User;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;
class RegisterController extends Controller
{
/*
|--------------------------------------------------------------------------
| Register Controller
|--------------------------------------------------------------------------
|
| This controller handles the registration of new users as well as their
| validation and creation. By default this controller uses a trait to
| provide this functionality without requiring any additional code.
|
*/
use RegistersUsers;
/**
* Where to redirect users after registration.
*
* @var string
*/
protected $redirectTo = '/';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest');
}
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'username' => 'required|max:255|unique:users',
'password' => 'required|min:6|confirmed',
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return User
*/
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'username' => $data['username'],
'password' => bcrypt($data['password']),
]);
}
}
paso 2:
ir a tudominio/app/User.php
protected $fillable = [
'name', 'email', 'password', 'username',
];
se agregó username
el archivo quedaria asi:
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password', 'username',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
}
paso 3:
ir a la vista de registro de usuarios tudominio/resources/view/auth/register.blade.php
y agregar el input username, puedes copiar el código del input name.
Comentarios
Publicar un comentario