Почему моя собственная аутентификация не работает с моей собственной моделью в Laravel?

Я использую Laravel 4.2 и пытаюсь авторизовать свою собственную модель (я не использую User модель).
Проблема возникает, когда передать почту и пароль, тогда я использую метод Auth::attempt а также входит в else (что соответствует ошибке)

Usuario Controller

class UsuarioController extends BaseController{

function doLogin(){
$userdata = array(
'Correo' => Input::get('correo'),
'Contrasena' => Input::get('contrasena')
);
if(Auth::attempt($userdata)){
echo 'SUCCESS!';

}else{
echo 'Error!';

}
} ...

Модель Усуарио

use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;
class Usuario extends Eloquent implements UserInterface, RemindableInterface {
protected $table = 'Usuario';
protected $primaryKey = 'idUsuario';
protected $fillable = array(
'Nombre',
'Apellido',
'Rol',
'Correo',
'Contarsena',
'Cumpleanos',
'Foto',
'Pais',
'Comuna',
'Profesion_idProfesion',
'Institucion_idInstitucion',
'remember_token'
);

function profesion(){
return $this->belongsTo('Profesion', 'idProfesion');
}public function getPasswordAttribute()
{
return $this->Contrasena;
}

public function setPasswordAttribute($Contrasena)
{
$this->Contrasena= $Contrasena;
}

public function getReminderEmail()
{
return $this->Correo;
}

public function getRememberToken()
{
return $this->remember_token;
}

public function setRememberToken($value)
{
$this->remember_token = $value;
}

public function getRememberTokenName()
{
return 'remember_token';
}
public function getAuthIdentifier()
{
return $this->getKey();
}
public function getAuthPassword() {
return $this->Contrasena;
}

}

auth.php

return array(

'driver' => 'eloquent', //database or eloquent

'model' => 'Usuario',

'table' => 'Usuario',

'username' => 'Correo',
'password' => 'Contrasena',

'reminder' => array(

'email' => 'emails.auth.reminder',

'table' => 'password_reminders',

'expire' => 60,

),

);

Таблица Усуарио

введите описание изображения здесь

Приложение никогда не падает, но в Если условие всегда входите в » else » возвраты Ошибка!

0

Решение

У вас есть опечатка в вашем массиве:

protected $fillable = array(
'Nombre',
'Apellido',
'Rol',
'Correo',
'Contarsena',
'Cumpleanos',
'Foto',
'Pais',
'Comuna',
'Profesion_idProfesion',
'Institucion_idInstitucion',
'remember_token'
);

Contarsena должно быть contraseña

И ваш массив аутентификации должен содержать email а также password ключ:

$userdata = array(
'correo' => Input::get('correo'),
'password' => Input::get('contrasena')
);
0

Другие решения

пытаться

dd(DB::getQueryLog());

чтобы выполнить SQL. Это облегчает поиск неисправностей.

Я предполагаю, что нет поля «пароль», которое метод попытки автоматически хеширует

0