public function load(ObjectManager $manager) { // Obtener todas las ciudades de la base de datos $cities = $manager->getRepository('TestBundle:City')->findAll(); for ($i = 1; $i <= 200; $i++) { $user = new User(); $user->setName($this->getName()); $user->setSurname($this->getSurname()); $user->setEmail('user' . $i . '@localhost'); $user->setSalt(base_convert(sha1(uniqid(mt_rand(), true)), 16, 36)); $passwordEnClaro = 'user' . $i; $encoder = $this->container->get('security.encoder_factory')->getEncoder($user); $passwordCodificado = $encoder->encodePassword($passwordEnClaro, $user->getSalt()); $user->setPassword($passwordCodificado); $city = $cities[array_rand($cities)]; $user->setAddress($this->getAddress($city)); $user->setCity($city); // El 60% de los usuarios permite email $user->setEmailAllows(rand(1, 1000) % 10 < 6); $user->setDischargeDate(new \DateTime('now - ' . rand(1, 150) . ' days')); $user->setBirthDate(new \DateTime('now - ' . rand(7000, 20000) . ' days')); $dni = substr(rand(), 0, 8); $user->setDni($dni . substr("TRWAGMYFPDXBNJZSQVHLCKE", strtr($dni, "XYZ", "012") % 23, 1)); $user->setCreditNumber('1234567890123456'); $manager->persist($user); } $manager->flush(); }