Persistência em cascata

13 views
Skip to first unread message

André Luiz Vargas Goulart

unread,
Apr 17, 2018, 1:09:15 PM4/17/18
to Symfony Brasil
Olá
Faz alguns anos que não programava e decidi ver se ainda lembrava.
É a primeira vez que estou usando o Symfony e estou achando bem divertido.
Surgiu-me uma dúvida sobre o relacionamento
Um cliente tem muitos telefones
mapeei no yml, pois na engenharia reversa o doctrine não fez.
quando incluo um cliente novo, logo os telefones também são novos.
Então deu um erro no objeto telefone dizendo que o cliente não pode ser nulo.
Resolvi o problema assim:
            $objCliente->getTelefone()->first();
            while ($objTelefone = $objCliente->getTelefone()->current()){
                $objTelefone->setCliCodigoid($objCliente);
                $objCliente->getTelefone()->next();
            }
A minha dúvida é se esse código é realmente necessário ou eu fiz algo errado?

Obrigado

Raphael

unread,
Apr 17, 2018, 1:22:34 PM4/17/18
to symfo...@googlegroups.com
Olá André,

Utilizando o `CollectionType` do Form do Symfony (https://symfony.com/doc/current/reference/forms/types/collection.html) você não precisa se preocupar muito com esses relações.
E se tiver alguma dúvida como salvar o objeto dá uma olhada aqui https://symfony.com/doc/current/forms.html#handling-form-submissions

Att.

--
You received this message because you are subscribed to the Google Groups "Symfony Brasil" group.
To unsubscribe from this group and stop receiving emails from it, send an email to symfony-pt+unsubscribe@googlegroups.com.
To post to this group, send email to symfo...@googlegroups.com.
Visit this group at https://groups.google.com/group/symfony-pt.
For more options, visit https://groups.google.com/d/optout.



--
Raphael Almeida Araújo
Homepage: http://me.qrimb.com/

André Luiz Vargas Goulart

unread,
Apr 24, 2018, 9:36:02 AM4/24/18
to Symfony Brasil
Obrigado Raphael.

O código realmente é necessário por causa da função "Adicionar Telefone".

outra dúvida:
No sistema que estou fazendo tenho uma classe Entidade. Coloquei este nome porque ela pode ser cliente, fornecedor, colaborador e etc.
Por esta razão, decidi criar um MVC para cada um, utilizando sempre a Entity Entidade.
O problema é que no ClienteController, quando passo o objeto como parametro (showAction(Entidade $entidade)) é retornado uma LogicException: Unable to guess how to get a Doctrine instance from the request information for parameter "entidade".
isso não acontece no EntidadeController.
Como devo proceder para manter mais de um MVC para a mesma entidade?


Em terça-feira, 17 de abril de 2018 14:22:34 UTC-3, raphox escreveu:
Olá André,

Utilizando o `CollectionType` do Form do Symfony (https://symfony.com/doc/current/reference/forms/types/collection.html) você não precisa se preocupar muito com esses relações.
E se tiver alguma dúvida como salvar o objeto dá uma olhada aqui https://symfony.com/doc/current/forms.html#handling-form-submissions

Att.
2018-04-17 11:46 GMT-03:00 André Luiz Vargas Goulart <alv...@gmail.com>:
Olá
Faz alguns anos que não programava e decidi ver se ainda lembrava.
É a primeira vez que estou usando o Symfony e estou achando bem divertido.
Surgiu-me uma dúvida sobre o relacionamento
Um cliente tem muitos telefones
mapeei no yml, pois na engenharia reversa o doctrine não fez.
quando incluo um cliente novo, logo os telefones também são novos.
Então deu um erro no objeto telefone dizendo que o cliente não pode ser nulo.
Resolvi o problema assim:
            $objCliente->getTelefone()->first();
            while ($objTelefone = $objCliente->getTelefone()->current()){
                $objTelefone->setCliCodigoid($objCliente);
                $objCliente->getTelefone()->next();
            }
A minha dúvida é se esse código é realmente necessário ou eu fiz algo errado?

Obrigado

--
You received this message because you are subscribed to the Google Groups "Symfony Brasil" group.
To unsubscribe from this group and stop receiving emails from it, send an email to symfony-pt+...@googlegroups.com.

To post to this group, send email to symfo...@googlegroups.com.
Visit this group at https://groups.google.com/group/symfony-pt.
For more options, visit https://groups.google.com/d/optout.

Raphael

unread,
Apr 24, 2018, 10:03:24 AM4/24/18
to symfo...@googlegroups.com
Isso está me parecendo mais problema de rota.
Parece que você não está passando parâmetros deviso para a action 'show'.

Eu ainda não mexi a fundo no symfony 4. mas pesquisando eu achei o maker dele aqui https://symfony.com/doc/current/bundles/SymfonyMakerBundle/index.html
O maker padrão sempre é bom para se ter uma boa base. Veja o esquelo de um CRUD com ele https://github.com/symfony/maker-bundle/blob/master/src/Resources/skeleton/crud/controller/Controller.tpl.php


To unsubscribe from this group and stop receiving emails from it, send an email to symfony-pt+unsubscribe@googlegroups.com.

To post to this group, send email to symfo...@googlegroups.com.
Visit this group at https://groups.google.com/group/symfony-pt.
For more options, visit https://groups.google.com/d/optout.

Glauber Mota

unread,
Apr 24, 2018, 12:04:03 PM4/24/18
to symfo...@googlegroups.com
Passa o id como parâmetro, não a entidade. Daí busca a entidade através do id.
Reply all
Reply to author
Forward
0 new messages