2014-02-12 5 views
7
 $userdata = array(
      'email' => Input::get('email'), 
      'password' => Input::get('password') 
      ); 



     if (Auth::attempt($userdata)) { 

      echo 'SUCCESS!'; 

     } else {   

      return Redirect::to('login'); 

     } 

, когда я запустить приложение из браузера я получил эту ошибку:Не удается проверить подлинность пользователя в Laravel

Argument 1 passed to Illuminate\Auth\EloquentUserProvider::validateCredentials() must be an instance of Illuminate\Auth\UserInterface, instance of User given, called in /home/srtpl17/Sites/yatin.sr/vendor/laravel/framework/src/Illuminate/Auth/Guard.php on line 316 and defined

Что я сделал неправильно?

+0

такой же проблема здесь тоже.i m используя laravel 4. изменение до класс User extends Eloquent реализует UserInterface вызывает больше ошибок – jayadevkv

ответ

7

Это звучит как из вашей ошибки, что ваша модель Пользователя не реализует пользовательский интерфейс (по умолчанию модель пользователя, которая поставляется с Laravel делает это правильно, так что я предполагаю, что вы сделали обычай один)

http://github.com/laravel/laravel/blob/master/app/models/User.php

Убедитесь, что модель пользователя выглядит следующим образом:

use Illuminate\Auth\UserInterface; 
use Illuminate\Auth\Reminders\RemindableInterface; 

class User extends Eloquent implements UserInterface, RemindableInterface { 


/** 
* Get the unique identifier for the user. 
* 
* @return mixed 
*/ 
public function getAuthIdentifier() 
{ 
    return $this->getKey(); 
} 

/** 
* Get the password for the user. 
* 
* @return string 
*/ 
public function getAuthPassword() 
{ 
    return $this->password; 
} 

/** 
* Get the e-mail address where password reminders are sent. 
* 
* @return string 
*/ 
public function getReminderEmail() 
{ 
    return $this->email; 
} 

// Add your other methods here 

} 
+0

это хорошая точка ... можем ли мы увидеть определение класса модели User? он должен иметь что-то вроде: 'class User extends Eloquent реализует UserInterface' – warspite

+2

@warspite. Этот ответ верный, убедитесь, что вы реализуете UserInterface и RemindableInterface, https://github.com/laravel/laravel/blob/master/app/models /User.php – undefined

+0

для более поздних комассоров, по умолчанию user.php находится по адресу https://github.com/laravel/laravel/blob/master/app/User.php –

1

Вы не показываете, что userdata определено как, но из сообщения об ошибке кажется, что это экземпляр вашего класса моделей User.

Метод Auth::attempt() ищет массив учетных данных, а не модель.

+0

я редактирую userdata, но при этом возникает одна и та же ошибка – user3291589

0

Эта ошибка может появиться, когда вы используете другую модель для пользователей (например: член) , если это так, вам нужно обновить Authenti cation Model and Authentication Table в app/config/auth.php с соответствующей таблицей модели/базы данных.

+0

Я сделал это, и я все еще получаю ту же ошибку , Любой другой вариант? –

Смежные вопросы