2015-12-06 2 views
1

Как я могу вызвать метод create для регистрации пользователя из контроллера.Laravel создает нового пользователя изнутри контроллера

Пользователь зарегистрировался при регистрации нового пользователя. При выполнении:

User::create([ 
... 
]); 

Пароль не хэшируется, поэтому процедура регистра должна быть сделана с другим вызовом метода. В методе postRegister используется процесс регистра по умолчанию, то эта линия

Auth::login($this->create($request->all())); 

Так как я могу вызвать $ this-> создать ($ request-> все())

С моим обычаем контроллер и какие параметры он требует.

Любые идеи Заранее благодарим за любые отзывы.

/** 
    * Invites a new user to the current users company. 
    * @param Request $request 
    * @return mixed 
    */ 
    public function employeeInvite(Request $request) { 


     $this->validate($request, [ 
      'email' => 'required|email', 
     ]); 

      // TODO: Check user is authorized to send invites 


     $user = $this->users->getUserByEmail($request->email); // get user 

     if($this->userExists($user) 
      && $request->user()->email != $request->email 
      && $this->userHasInvite($user->id, $request->user()->company_id) == false) 
     { 
      // send invite 
      if($this->sendInvite($request->user()->company_id, $user->id)) { 
       // if worked, create succses method to send back to the user 
      } 


     } else 
     { 
      // create user 
      $userData = [ 
       'email' => $request->email, 
       'password' => $this->random_password(6), 
      ]; 
      $newUser = User::create($userData); 

      // send invite 
      $this->sendInvite($request->user()->company_id, $userData->id); 
     } 


     return redirect('members/company'); 
    } // end function employeeInvite 
+0

Что делает пользовательский код контроллера выглядеть? – Bogdan

+0

Я добавил функцию к вопросу, я хочу на самом деле вызвать метод из –

+1

на основе [docs] (http://laravel.com/docs/5.1/authentication#other-authentication-methods), который вы могли бы сделать пользователь, получить его id и логин с его идентификатором. альтернативно, используя его модель, даже без хешированного пароля. пс. для создания пользователя с хешированным паролем требуется явно '$ user-> password = bcrypt ($ request-> input ('password'))' или с помощью [setAttribute mutators] (http://laravel.com/docs/5.1/ красноречивые-мутаторов # аксессоров-и-мутаторов). –

ответ

0

User::create() метод не хэш паролей сама по себе, так что вам придется сделать это самостоятельно.

функция хеширования Laravel является bcrypt(), так что ваш $userData массив должен выглядеть следующим образом:

$userData = [ 
    'email' => $request->email, 
    'password' => bcrypt($this->random_password(6)), 
];