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 (ma_table_des_utilisateurs) 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

Laisser un commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.