public function loadPerfils($prfs)
 {
     /** @var PerfilInterface $prf */
     foreach ($prfs as $prf) {
         $encontrado = false;
         foreach ($this->getPerfilXPermisos() as $pxp) {
             if ($pxp->getPerfil()->getId() == $prf->getId()) {
                 $encontrado = true;
                 break;
             }
         }
         if (!$encontrado) {
             $pxpn = new PerfilXPermiso();
             $pxpn->setPermiso($this)->setPerfil($prf);
             $this->addPerfilXPermiso($pxpn);
         }
     }
 }
 /**
  * {@inheritdoc}
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $perfilManager = $this->getContainer()->get('ad_perfil.perfil_manager');
     $perfil = $perfilManager->find($input->getArgument('perfil_id'));
     if (is_null($perfil)) {
         throw new \RuntimeException('El perfil ingresado no esta registrado en nuestra base de datos');
     }
     $em = $this->getContainer()->get('doctrine')->getManager();
     $permisos = $em->getRepository('ADPerfilBundle:Permiso')->findByNombreParcial('ad_perfil-');
     foreach ($permisos as $permiso) {
         /** @var PerfilXPermiso $pxp */
         $pxp = $em->getRepository('ADPerfilBundle:PerfilXPermiso')->findOneBy(['perfil' => $perfil->getId(), 'permiso' => $permiso->getId()]);
         if (!$pxp) {
             $pxp = new PerfilXPermiso();
             $pxp->setPermiso($permiso)->setPerfil($perfil)->setAcceso(true);
         } else {
             $pxp->setAcceso(true);
         }
         $em->persist($pxp);
     }
     $em->flush();
 }