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: > > > > This validation config: > > > > > <?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; > > > > > > } > > > > > > > /** > > > > > > * Get tipoPessoa > > > > > > * > > > > > > * @return string $tipoPessoa > > > > > > */ > > > > > > public function getTipoPessoa() > > > > > > { > > > > > > return $this->tipoPessoa; > > > > > > } > > > > > > > /** > > > > > > * Set nomeEmpresa > > > > > > * > > > > > > * @param string $nomeEmpresa > > > > > > */ > > > > > > public function setNomeEmpresa($nomeEmpresa) > > > > > > { > > > > > > $this->nomeEmpresa = $nomeEmpresa; > > > > > > } > > > > > > > /** > > > > > > * Get nomeEmpresa > > > > > > * > > > > > > * @return string $nomeEmpresa > > > > > > */ > > > > > > public function getNomeEmpresa() > > > > > > { > > > > > > return $this->nomeEmpresa; > > > > > > } > > > > > > > /** > > > > > > * Set numeroDocumento > > > > > > * > > > > > > * @param string $numeroDocumento > > > > > > */ > > > > > > public function setNumeroDocumento($numeroDocumento) > > > > > > { > > > > > > $this->numeroDocumento = $numeroDocumento; > > > > > > } > > > > > > > /** > > > > > > * Get numeroDocumento > > > > > > * > > > > > > * @return string $numeroDocumento > > > > > > */ > > > > > > public function getNumeroDocumento() > > > > > > { > > > > > > return $this->numeroDocumento; > > > > > > } > > > > > > > /** > > > > > > * Set inscrestadual > > > > > > * > > > > > > * @param string $inscrestadual > > > > > > */ > > > > > > public function setInscrestadual($inscrestadual) > > > > > > { > > > > > > $this->inscrestadual = $inscrestadual; > > > > > > } > > > > > > > /** > > > > > > * Get inscrestadual > > > > > > * > > > > > > * @return string $inscrestadual > > > > > > */ > > > > > > public function getInscrestadual() > > > > > > { > > > > > > return $this->inscrestadual; > > > > > > } > > > > > > > /** > > > > > > * Set isentoInscr > > > > > > * > > > > > > * @param boolean $isentoInscr > > > > > > */ > > > > > > public function setIsentoInscr($isentoInscr) > > > > > > { > > > > > > $this->isentoInscr = $isentoInscr; > > > > > > } > > > > > > > /** > > > > > > * Get isentoInscr > > > > > > * > > > > > > * @return boolean $isentoInscr > > > > > > */ > > > > > > public function getIsentoInscr() > > > > > > { > > > > > > return $this->isentoInscr; > > > > > > } > > > > > > > /** > > > > > > * Set nome > > > > > > * > > > > > > * @param string $nome > > > > > > */ > > > > > > public function setNome($nome) > > > > > > { > > > > > > $this->nome = $nome; > > > > > > } > > > > > > > /** > > > > > > * Get nome > > > > > > * > > > > > > * @return string $nome > > > > > > */ > > > > > > public function getNome() > > > > > > { > > > > > > return $this->nome; > > > > > > } > > > > > > > /** > > > > > > * Set sobrenome > > > > > > * > > > > > > * @param string $sobrenome > > > > > > */ > > > > > > public function setSobrenome($sobrenome) > > > > > > { > > > > > > $this->sobrenome = $sobrenome; > > > > > > } > > > > > > > /** > > > > > > * Get sobrenome > > > > > > * > > ... > > 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