The solution is validation groups. Tanks
On 10 maio, 08:53, elcabong <elcabong....@gmail.com> wrote: > Controller: > > namespace MCP\AdminBundle\Controller; > > use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; > use MCP\AdminBundle\Form\ParceiroType; > use Symfony\Component\HttpFoundation\RedirectResponse; > use Symfony\Bundle\FrameworkBundle\Controller\Controller; > > class ParceiroController extends Controller > { > > .... > > public function createAction() > { > $form = $this->get('form.factory')->create(new ParceiroType()); > > $form->bindRequest($this->get('request')); > > if($form->isValid()) { > > $this->get('admin.repository.parceiro')->save($form- > > >getData()); > > $this->get('session')->setFlash('msg.add.sucess', > 'success'); > return $this->redirect($this->generateUrl('admin_parceiro_list')); > > } > > return > $this->get('templating')->renderResponse('MCPAdminBundle:Parceiro:new.html.twig', > array( > > 'form' => $form->createView() > )); > > } > > ...... > > } > > Repository: > > namespace MCP\AdminBundle\Repository; > > use Symfony\Component\Security\Core\Encoder > \MessageDigestPasswordEncoder; > use MCP\AdminBundle\Entity\Parceiro; > use Doctrine\ORM\EntityRepository; > > /** > * ParceiroRepo > * > * This class was generated by the Doctrine ORM. Add your own custom > * repository methods below. > */ > class ParceiroRepo extends EntityRepository > { > public function save(Parceiro $parceiro) { > > $parceiro->setSalt(md5(time())); > $password = $parceiro->getSenha(); > > $encoder = new MessageDigestPasswordEncoder('sha512', true, > 10); > $encodePassword = $encoder->encodePassword($password, > $parceiro- > > >getSalt()); > > $parceiro->setSenha($encodePassword); > > $objectManager = $this->getEntityManager(); > $objectManager->persist($parceiro); > $objectManager->flush(); > } > > ..... > > } > > Anything else?? > > Tanks. > > On 9 maio, 21:58, Donald Tyler <chekot...@gmail.com> wrote: > > > > > > > > > The only thing I can think is happening is that the Cidade is becoming > > detached from the Entity Manager somehow, and when you persist the new > > Parceiro, it's actually trying to persist the Cidade again. > > > Can you post the full code for the Controller action that's throwing the > > Unique Constraint violation? > > > On Mon, May 9, 2011 at 9:19 AM, elcabong <elcabong....@gmail.com> wrote: > > > Yes > > > > What can I try to do for this not to happen?? > > > > Tanks > > > > On May 9, 9:51 am, Donald Tyler <chekot...@gmail.com> wrote: > > > > You said that you weren't creating a new Cidade, so that means that > > > > the Parceiro > > > > was using an existing Cidade, correct? > > > > > On Mon, May 9, 2011 at 7:44 AM, elcabong <elcabong....@gmail.com> wrote: > > > > > Thisvalidationconfig: > > > > > > <?xml version="1.0" encoding="UTF-8"?> > > > > > <constraint-mapping xmlns="http://symfony.com/schema/dic/constraint- > > > > > mapping" > > > > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > > > > > xsi:schemaLocation=" > > > > >http://symfony.com/schema/dic/constraint-mapping > > > > >http://symfony.com/schema/dic/services/constraint-mapping-1.0.xsd"> > > > > > > <class name="MCP\AdminBundle\Entity\Cidade"> > > > > > <property name="nome"> > > > > > <constraint name="NotBlank"> > > > > > <option name="message">Por favor digite > > > um > > > > > nome</option> > > > > > </constraint> > > > > > <constraint name="MinLength"> > > > > > <option name="limit">6</option> > > > > > <option name="message">Nome muito > > > > > pequeno</option> > > > > > </constraint> > > > > > <constraint name="MaxLength"> > > > > > <option name="limit">90</option> > > > > > <option name="message">Nome muito > > > > > longo</option> > > > > > </constraint> > > > > > <constraint > > > name="MCP\AdminBundle\Validator\Unique"> > > > > > <option name="property">nome</option> > > > > > <option > > > > > name="entity">MCP\AdminBundle\Entity\Cidade</option> > > > > > <option name="message">Cidade já > > > > > cadastrada</option> > > > > > </constraint> > > > > > </property> > > > > > </class> > > > > > > <class name="MCP\AdminBundle\Entity\Usuario"> > > > > > <property name="senha"> > > > > > <constraint name="MinLength"> > > > > > <option name="limit">6</option> > > > > > <option name="message">A senha precisa > > > ser > > > > > no mÃnimo 6 dÃgitos</ > > > > > option> > > > > > </constraint> > > > > > <constraint name="True"> > > > > > <option name="message">Erro > > > senha</option> > > > > > </constraint> > > > > > </property> > > > > > </class> > > > > > > <class name="MCP\AdminBundle\Entity\Parceiro"> > > > > > > </class> > > > > > > </constraint-mapping> > > > > > > On May 9, 9:32 am, Donald Tyler <chekot...@gmail.com> wrote: > > > > > > I don't see any info on your class annotations for what properties > > > are > > > > > > required to be unique. > > > > > > > On Mon, May 9, 2011 at 7:27 AM, elcabong <elcabong....@gmail.com> > > > wrote: > > > > > > > Entities: > > > > > > > > class Cidade > > > > > > > { > > > > > > > /** > > > > > > > * @var string $nome > > > > > > > */ > > > > > > > private $nome; > > > > > > > > /** > > > > > > > * @var boolean $ativo > > > > > > > */ > > > > > > > private $ativo; > > > > > > > > /** > > > > > > > * @var bigint $id > > > > > > > */ > > > > > > > private $id; > > > > > > > > /** > > > > > > > * Set nome > > > > > > > * > > > > > > > * @param string $nome > > > > > > > */ > > > > > > > public function setNome($nome) > > > > > > > { > > > > > > > $this->nome = $nome; > > > > > > > } > > > > > > > > /** > > > > > > > * Get nome > > > > > > > * > > > > > > > * @return string $nome > > > > > > > */ > > > > > > > public function getNome() > > > > > > > { > > > > > > > return $this->nome; > > > > > > > } > > > > > > > > /** > > > > > > > * Set ativo > > > > > > > * > > > > > > > * @param boolean $ativo > > > > > > > */ > > > > > > > public function setAtivo($ativo) > > > > > > > { > > > > > > > $this->ativo = $ativo; > > > > > > > } > > > > > > > > /** > > > > > > > * Get ativo > > > > > > > * > > > > > > > * @return boolean $ativo > > > > > > > */ > > > > > > > public function getAtivo() > > > > > > > { > > > > > > > return $this->ativo; > > > > > > > } > > > > > > > > /** > > > > > > > * Get id > > > > > > > * > > > > > > > * @return bigint $id > > > > > > > */ > > > > > > > public function getId() > > > > > > > { > > > > > > > return $this->id; > > > > > > > } > > > > > > > > } > > > > > > > > class Parceiro extends Usuario > > > > > > > { > > > > > > > > /** > > > > > > > * @var string $tipoPessoa > > > > > > > */ > > > > > > > private $tipoPessoa; > > > > > > > > /** > > > > > > > * @var string $nomeEmpresa > > > > > > > */ > > > > > > > private $nomeEmpresa; > > > > > > > > /** > > > > > > > * @var string $numeroDocumento > > > > > > > */ > > > > > > > private $numeroDocumento; > > > > > > > > /** > > > > > > > * @var string $inscrestadual > > > > > > > */ > > > > > > > private $inscrestadual; > > > > > > > > /** > > > > > > > * @var boolean $isentoInscr > > > > > > > */ > > > > > > > private $isentoInscr; > > > > > > > > /** > > > > > > > * @var string $nome > > > > > > > */ > > > > > > > private $nome; > > > > > > > > /** > > > > > > > * @var string $sobrenome > > > > > > > */ > > > > > > > private $sobrenome; > > > > > > > > /** > > > > > > > * @var string $urlsite > > > > > > > */ > > > > > > > private $urlsite; > > > > > > > > /** > > > > > > > * @var string $endereco > > > > > > > */ > > > > > > > private $endereco; > > > > > > > > /** > > > > > > > * @var string $complemento > > > > > > > */ > > > > > > > private $complemento; > > > > > > > > /** > > > > > > > * @var integer $numero > > > > > > > */ > > > > > > > private $numero; > > > > > > > > /** > > > > > > > * @var string $cep > > > > > > > */ > > > > > > > private $cep; > > > > > > > > /** > > > > > > > * @var string $telefone > > > > > > > */ > > > > > > > private $telefone; > > > > > > > > /** > > > > > > > * @var MCP\AdminBundle\Entity\Cidade > > > > > > > */ > > > > > > > private $cidade; > > > > > > > > /** > > > > > > > * Set tipoPessoa > > > > > > > * > > > > > > > * @param string $tipoPessoa > > > > > > > */ > > > > > > > public function setTipoPessoa($tipoPessoa) > > > > > > > { > > > > > > > $this->tipoPessoa = $tipoPessoa; > > > > > > > } > > > > > > > > /** > > ... > > mais » -- If you want to report a vulnerability issue on symfony, please send it to security at symfony-project.com You received this message because you are subscribed to the Google Groups "symfony users" group. To post to this group, send email to symfony-users@googlegroups.com To unsubscribe from this group, send email to symfony-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/symfony-users?hl=en