10
votes

Création d'un utilisateur administrateur à l'aide de Datafixtures et de FosuserBundle

J'essaie de créer un nouvel utilisateur d'utilisateur à partir d'un appareil. J'utilise FosuserBundle et Symfony2. XXX

Je reçois toujours cette erreur: xxx


2 commentaires

Pourquoi n'utilisez-vous pas FOS: Utilisateur: Promouvoir?


Je souhaite créer un utilisateur administrateur la première fois que j'exécute mon application sur le serveur de production. Si je sais bien, promouvons les œuvres pour modifier le rôle d'un utilisateur déjà créé, mais pas exactement ce que je veux.


5 Réponses :



2
votes

L'erreur est que le conteneur $ est actuellement indéfini. Pour résoudre ce problème, ajoutez le conteneuraréinterface à votre définition de classe.

class LoadUserData implements FixtureInterface, ContainerAwareInterface
{
    ...
}


0 commentaires

27
votes

Cela a fonctionné pour moi (j'utilise également FosuserBundle): XXX

J'espère que cela aide quelqu'un! :)


2 commentaires

Cool Son travail pour moi aussi :) Tnx. github.com/friendsofsymfony/fosuserbundle/blob/master/resour CES / ... - C'est la documentation d'Usermanager si quelqu'un veut faire quelque chose de differt :)


Cela fonctionne, mais comment pouvons-nous charger un utilisateur de la base de données si nous allons faire un chargement «--append» et nous n'avons pas wana créer un nouvel utilisateur, mais utilisez-en une existante.



0
votes

Ceci est la version mise à jour pour SF3 + Cette réponse est basée sur Anil et Mun Mun Das Answers.

namespace App\DataFixtures;

use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Common\Persistence\ObjectManager;
use FOS\UserBundle\Model\UserManagerInterface;

    class AdminFixtures extends Fixture
    {

        private $userManager;

        public function __construct(UserManagerInterface $userManager)
        {
            $this->userManager = $userManager;
        }

        public function load(ObjectManager $manager)
        {
            $user = $this->userManager->createUser();
            $user->setUsername('username');
            $user->setEmail('email@domain.com');
            $user->setPlainPassword('password');
            $user->setEnabled(true);
            $user->setRoles(array('ROLE_ADMIN'));
            $this->userManager->updateUser($user);
        }
    }


0 commentaires

0
votes

C'est ce que j'ai utilisé avec Symfony 4, Sonataadmin et Fosuserbundle xxx


0 commentaires