Laravel 7 No puedo obtener el nombre mediante Auth::user()->username
Publicado por Álvaro (22 intervenciones) el 26/06/2020 22:47:53
Buenos días/tardes/noches. Estoy realizando un pequeño proyecto usando Laravel, y con respecto al login he decidido usar lo que se conoce como 'custom login', ya que el que crea el framework me ocasionaba algún que otro fallo.
Es cuando el usuario hace el login donde aparece el problema. Cuando el usuario inicia sesión es redirigido al perfil, donde debería verse su nombre de usuario tanto en un card como en la barra de navegación, pero obtengo el siguiente error:
En el controlador uso la función Auth::attempt para comparar la información que se recibe del formulario de login con los datos que se encuentran en la base de datos, para comprobar si se encuentra registrado. Aquí tengo la función login del controlador:
También dejo la vista del perfil, para comprobar lo que hago:
También dejo la migración de la tabla user:
Es cuando el usuario hace el login donde aparece el problema. Cuando el usuario inicia sesión es redirigido al perfil, donde debería verse su nombre de usuario tanto en un card como en la barra de navegación, pero obtengo el siguiente error:
En el controlador uso la función Auth::attempt para comparar la información que se recibe del formulario de login con los datos que se encuentran en la base de datos, para comprobar si se encuentra registrado. Aquí tengo la función login del controlador:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public function login()
{
request()->validate([
'email' => 'required',
'password' => 'required'
]);
$credentials = array(
"email" => request("email"),
"password" => request("password")
);
if (Auth::attempt($credentials)) {
return Redirect::route('user.profile');
}
return Redirect::route('user.showLoginForm');
}
También dejo la vista del perfil, para comprobar lo que hago:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<div class="container">
<div class="row pt-2">
<div class="col-sm-12 justify-content-center">
<div class="card">
<div class="card-header">
<h4>
Registro
</h4>
</div>
<div class="card-body">
<div class="form-group">
Este es el perfil de {{ Auth::user()->username }}
</div>
</div>
</div>
</div>
</div>
</div>
También dejo la migración de la tabla user:
1
2
3
4
5
6
7
8
9
10
11
12
Schema::create('users', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->string('username', 50);
$table->string('email', 150);
$table->string('password', 500);
$table->string('profileImage', 500)->default(null);
$table->boolean('admin')->default('0');
$table->increments('ID');
$table->unique('id', 'id');
});
Valora esta pregunta


0