2017-02-16 8 views
0

Я пытаюсь аутентифицировать своего пользователя с помощью помощников Для этого у меня есть папка Helper в каталоге приложения. Добавьте следующие строки кода в composer.jsonОшибкаException в строке EloquentUserProvider.php 114: аргумент 1 передан в Illuminate Auth EloquentUserProvider :: validateCredentials

"files": [ 
     "app/Helpers/UserHelper.php" 
    ], 

Сделать HelperServiceProvider.php в каталоге App \ Provider, и используйте следующий код в нем.

<?php 
    namespace App\Providers; 
    use Illuminate\Support\ServiceProvider; 

    class HelperServiceProvider extends ServiceProvider 
    { 
    /** 
    * Bootstrap any application services. 
    * 
    * @return void 
    */ 
    public function boot() 
    { 
    // 
    } 

    /** 
    * Register any application services. 
    * 
    * @return void 
    */ 
    public function register() 
    { 
    foreach (glob(app_path().'/Helpers/*.php') as $filename){ 
     require_once($filename); 
    } 

    } 
    } 

после этого я должен добавить псевдоним в app.php, а также добавить обеспечивают как это

//this is an alias 
    'UserHelper' => App\Helpers\UserHelper::class, 
    //this is an provider 
    App\Providers\HelperServiceProvider::class, 

Моя модель Пользователь

<?php 

    namespace App; 

    use Illuminate\Database\Eloquent\Model; 

    class User extends Model { 
    protected $table='users'; 
    protected $fillable =['username', 'password', 'firstname', 'lastname', 'email', 'phone', 'groupname', 'about', 'image']; 

    public static $login = [ 
    'username' => 'required|', 
    'email' => 'required|', 
    'password' => 'required' 
    ]; 
    } 

Это мой UserHelper

<?php namespace App\Helpers; 
    use Illuminate\Support\Facades\Auth; 
    class UserHelper { 
    public static function processLogin($inputs){ 
    if(Auth::attempt($inputs)){ 
     return TRUE; 
    } else { 
     return FALSE; 
     } 
    } 
    } 

Вот моя функция входа

<?php 

    namespace App\Http\Controllers; 
    use App\User; 
    use Input; 
    use Illuminate\Support\Facades\Validator as Validator; 

    use App\Helpers\UserHelper; 


    class LoginController extends Controller 
    { 
    public function login() { 

    $inputs = Input::except('_token'); 
     $validator = Validator::make($inputs, User::$login); 

      if($validator->fails()){ 
        print_r($validator->errors()->first()); 
     } else { 
      $respones = \UserHelper::processLogin($inputs); 

     if($respones){ 
      return 'loginView'; 
      } else { 
      return 'not a user of our DB'; 
      } 
     } 
     } 
    } 

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

Reards

+0

Кассовые this..https: //laracasts.com/discuss/channels/laravel/fatalthrowableerror-while-attempting-to-authenticate – Sona

+0

сайт вниз прямо сейчас :( –

+0

нет Yaar рабочий – Sona

ответ

1
In your code you are extending the class User extends Model but when you are using auth functionality in laravel you need to extend the auth rather than model.. 

Keep Illuminate\Foundation\Auth\User and extends the model like this... 

class User extends Authenticatable{ 
//code here 
}