2013-01-11 14 views
46

Próbuję utworzyć nowego użytkownika z wiersza poleceń i uzyskać ten błąd:Tworzenie nowego użytkownika z FOSUserBundle nie

Warning: array_search() expects parameter 2 to be array, null given 
in /vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Model/User.php line 368 

Kiedy próbuje utworzyć użytkownika o rejestracji przez interfejsu WWW uzyskać to:

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'salt' cannot be null 

Logowanie się z już istniejącym użytkownikiem działa. Aktualizowanie profilu i zmiana hasła. Po prostu tworzenie nowych użytkowników nie działa.

Używam wersji 1.3.1 w bardzo prostym ustawieniu i nie znalazłem jeszcze żadnego rozwiązania.

Wszelkie pomysły?

Odpowiedz

143

Naprawiono!

Posiadałem niestandardową metodę konstruktora w mojej jednostce Użytkownik. Tam zapomniałem zadzwonić do konstruktora rodzica z parent::__construct();

5

Może to komuś pomóc. Możesz zobaczyć ten błąd, gdy używasz kodera bcrypt.

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'salt' cannot be null 

Aby rozwiązać ten problem wystarczy dodać mapowania nadpisanie dla atrybutu soli w swojej klasie użytkownika (uczynić go pustych)

use FOS\UserBundle\Model\User as BaseUser; 
use Doctrine\ORM\Mapping as ORM; 

/** 
* @ORM\Entity 
* @ORM\AttributeOverrides({ 
* @ORM\AttributeOverride(
*  name="salt", 
*  [email protected]\Column(name="salt", type="string", nullable=true) 
*  ) 
* }) 
*/ 
class User extends BaseUser { 
    ... 
} 

OR: nie zapomnij zaktualizować schemat. Jeśli błąd wydarzy się po aktualizacji kompozytora!

bin/console doctrine:schema:update --force 
Powiązane problemy