cipherbliss_blog

FOSUserBundle could not convert database value to doctrine type array

Si lorsque vous tentez de faire un ajout ou suppression de role en ligne de commande pour FOSUserBundle (FOSUB) vous obtenez un message d'erreur de conversion de Doctrine, 

could not convert database value to doctrine type array

c'est parce que dans votre base de données, dans la colonne "role" de vos utilisateurs, vous avez des valeurs vides, au lieu d'avoir des sérialisations de tableaux vides.

Pour remédier à cela vous pouvez définir par défaut la chaine correspondant à un Array vide, et remplir les vides a coup de commande SQL.

UPDATE table SET column"a:0:{}" WHERE column = "";= 

(en remplaçant les noms de table (matabledesutilisateurs) et de column (role)Vos commande de promotion de rôles fonctionneront alors comme par magie!

php app/console fos:user:promote jojo ROLE_ADMIN 

Role "ROLE_ADMIN" has been added to user "jojo".

sources: Trouvé et traduit depuis stackoverflow , image