Danilo Miguel

Aug 27, 2015 16:53
Permanece o mesmo, mas vou fazer assim... como o erro mudou, vou criar uma nova pergunta explicando o erro e coloco as entidades que estão menores e mais fáceis de visualizar
Aug 27, 2015 16:53
Isso... O correto é ele gerar somente o registro na tabela Cliente com o id do Estado.
Aug 27, 2015 16:53
Ele está inserindo os dados na tabela clientes só que ele cria um novo registro na tabela Estados e depois, ele pega o último registro gerado da tabela estado e insere na tabela Clientes.
Aug 27, 2015 16:53
Então... as tabelas eu já criei novamente e adicionei a FK conforme a mensagem acima... está tudo certo com as tabelas aparentemente, só que agora o erro sumiu.
Aug 27, 2015 16:53
Eu gerei as entidades automaticamente com o Git Bash
Aug 27, 2015 16:53
Beleza... tudo bem.. Fiz um teste nas tabelas e elas estão corretas... voltei acreditar que realmente é o código que está errado
Aug 27, 2015 16:53
create table clientes(id int primary key auto_increment, nome varchar(100), estado_fk int); create table estados(id int primary key auto_increment, uf char(2), estado varchar(30) ); alter table clientes add foreign key (estado_fk) REFERENCES estados(id);
Aug 27, 2015 16:53
Refiz as tabelas, mas agora ao salvar ele insere uma nova linha na tabela estado e como se ele pegasse a última linha gerada, e insere na tabela cliente com a última id.
Aug 27, 2015 16:53
Entendi... bom, como é pra fins didático vou refazer as tabelas novamente e se for erro de relacionamento entre as tabelas eu posto amanhã. Obrigado.
Aug 27, 2015 16:53
A PK da minha tabela estado é a id_fk
Aug 27, 2015 16:53
Ele está declarada class Estados { /** * @var \Id * * @ORM\ManyToOne(targetEntity="Estados") * @ORM\JoinColumns({ * @ORM\JoinColumn(name="estado", referencedColumnName="id_fk") * }) */ private $idFk;
Aug 27, 2015 16:53
Dei um Debug dentro do setEstado e ele me trouxe... "object(Clientes\Entity\Estados)#249 (2) { ["idFk":"Clientes\Entity\Estados":private] => string(1) "1" ["estado":"Clientes\Entity\Estados":private] => string(1) "1" }".. não sei se esta informação ajuda em algo
Aug 27, 2015 16:53
tentei e deu agora deu a segunte mensagem... "No identifier/primary key specified for Entity "Clientes\Entity\Estados". Every Entity must have an identifier/primary key."
Aug 27, 2015 16:53
function setEstado(\Estados $estado) { $this->estado = $estado; }
Aug 27, 2015 16:53
Minha function que está dando o setter é esta...
Aug 27, 2015 16:53
Continua no mesmo erro...
Aug 27, 2015 16:53
As duas Entity estão na mesma pasta
Aug 27, 2015 16:53
Catchable fatal error: Argument 1 passed to Clientes\Entity\Clientes::setEstado() must be an instance of Estados, instance of Clientes\Entity\Estados given, called in C:\xampp\htdocs\zend_framework\module\Clientes\src\Clientes\Controller\IndexCont‌​‌​roller.php on line 34 and defined in C:\xampp\htdocs\zend_framework\module\Clientes\src\Clientes\Entity\Clientes.php on line 186
Aug 27, 2015 16:53
a mesma coisa...
Aug 27, 2015 16:53
Não deu certo cara... :/