2015-02-26 4 views
1

Я пытаюсь зарегистрировать пользователя в использовании CakePHP 3 сразу после регистрации, но я не был успешным. Это то, что я делаю:CakePHP 3: Как автоматически зарегистрировать пользователя после регистрации

function register(){ 
    // .... 
    if($result = $this->Users->save($user)){ 
     // Retrieves corresponding user that was just saved 
     $authUser = $this->Users->get($result->id); 

     // Log user in using Auth 
     $this->Auth->setUser($authUser); 

     // Redirect user 
     $this->redirect('/users/account'); 
    } 
} 

ответ

6

Я думаю, что публикация этого вопроса открыла мне глаза на исправление. Это то, что я сделал, чтобы заставить его работать ... если есть лучший путь, я был бы рад, чтобы изменить его ...

function register(){ 
    // .... Default CakePHP generated code 

    if($result = $this->Users->save($user)){ 
     // Retrieve user from DB 
     $authUser = $this->Users->get($result->id)->toArray(); 

     // Log user in using Auth 
     $this->Auth->setUser($authUser); 

     // Redirect user 
     $this->redirect(['action' => 'account']); 
    } 
} 
+2

Это правильный способ сделать это :) –

+0

Удивительный .. спасибо вы Хосе Лоренцо –

+0

Я тоже даю это, и я попытался использовать ваш код, но он не работает. Значение переменной $ result представляется неинициализированным, это ошибка. Есть идеи? – Tom

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