node - security symfony2
No se puede crear un nuevo usuario con FOSUserBundle (2)
Intento crear un nuevo usuario desde la línea de comando y obtener este error:
Warning: array_search() expects parameter 2 to be array, null given
in /vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Model/User.php line 368
Cuando intento crear un usuario registrándome en la interfaz web, obtengo esto:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column ''salt'' cannot be null
Iniciar sesión con un usuario ya existente funciona. También actualizando un perfil y cambiando la contraseña. Simplemente crear nuevos usuarios no funciona.
Estoy usando v 1.3.1 en una configuración muy simple y todavía no he encontrado ninguna solución.
¿Algunas ideas?
¡Fijo!
Tenía un método de constructor personalizado en mi entidad de usuario. Allí había olvidado llamar al constructor del parent::__construct();
con parent::__construct();
Quizás ayude a alguien. Puede ver este error cuando use el codificador bcrypt.
SQLSTATE[23000]: Integrity constraint violation: 1048 Column ''salt'' cannot be null
Para resolver este problema, solo agregue el reemplazo de mapeo para el atributo salt en su clase de usuario (haga que sea nulo)
use FOS/UserBundle/Model/User as BaseUser;
use Doctrine/ORM/Mapping as ORM;
/**
* @ORM/Entity
* @ORM/AttributeOverrides({
* @ORM/AttributeOverride(
* name="salt",
* column=@ORM/Column(name="salt", type="string", nullable=true)
* )
* })
*/
class User extends BaseUser {
...
}
O bien: no olvide actualizar su esquema. ¡Si ocurrió un error después de la actualización del compositor!
bin/console doctrine:schema:update --force