Rodrigo, It seems you misunderstood my problem! Marco did help.
@Marco: it means in catch clause I need to have EntityManager::create ?




On Wed, Jun 4, 2014 at 12:21 AM, Rodrigo Wanderley de Melo Cardoso <
[email protected]> wrote:

> The error occurring because you're trying to create a new object with the
> same id.
> You need to find the object with $object =  find() and set the attributes
> on this object $object->set...(...). Then persist and flush.
>
>
>
> 2014-06-03 16:44 GMT-03:00 Nima Sadjadi <[email protected]>:
>
> It means I need to have the line below, in catch clause before
>> trigger_error?
>> $em = EntityManager::create($dbParams, $config, $evm);
>>
>>
>>
>> On Tue, Jun 3, 2014 at 11:41 PM, Marco Pivetta <[email protected]>
>> wrote:
>>
>>> You need a new entity manager. The EntityManager is being closed because
>>> its internal state (transaction and UnitOfWork) may be broken due to an
>>> error.
>>>
>>> Marco Pivetta
>>>
>>> http://twitter.com/Ocramius
>>>
>>> http://ocramius.github.com/
>>>
>>>
>>> On 3 June 2014 21:09, Nima Sadjadi <[email protected]> wrote:
>>>
>>>>
>>>> I discovered the problem, I see when an exception occurs, the
>>>> entitymanager will be closed. the error I was getting was because of:
>>>> trigger_error($e->getMessage(), E_USER_ERROR);
>>>> in my error handler, I was attempting to log $e->getMessage() into
>>>> database but entity manager was closed because of the occured exception
>>>> priorly in my controller. How can I fix this and restart the entity manager
>>>> that is closed because of an exception?
>>>>
>>>>
>>>>
>>>> On Tue, Jun 3, 2014 at 5:46 PM, Nima Sadjadi <[email protected]>
>>>> wrote:
>>>>
>>>>> Product and Info entities are OneToOne. Info is the owning side.
>>>>> I did this to add a new Info:
>>>>>
>>>>>                  $product = $em->find('Entities\Product',
>>>>> $_POST['productId']);
>>>>>                   if ($product !== null) {
>>>>>                       try {
>>>>>                            $info = new Entities\Info;
>>>>>                            $info->setProduct($product);
>>>>>                            $info->setFields($_POST, array('...'));
>>>>>                            $em->persist($info);
>>>>>                            $em->flush();
>>>>>                       } catch (Exception $e) {
>>>>>                            trigger_error($e->getMessage(),
>>>>> E_USER_ERROR);
>>>>>                       }
>>>>>                  }
>>>>>
>>>>> when I added a another Info for the same product, of course I was
>>>>> getting duplicate entry exception (because there are OneToOne) and
>>>>> try/catch was working fine too. But when I did run orm:update and FK
>>>>> indices are added into db, instead of duplicate entry error, I am getting
>>>>> "Entity is Closed" exception and try/catch is no longer catching it and 
>>>>> the
>>>>> script terminates for exception, I tried to debug it and noticed if I
>>>>> remove persist line I don't get exception any more and nothing flushed of
>>>>> course. I am trying to fix it by searching google and wiki but no success
>>>>> yet after 1 week! stuck on this! please help. I appreciate it.
>>>>>
>>>>>
>>>>>
>>>>
>>>>  --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "doctrine-user" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> To post to this group, send email to [email protected].
>>>> Visit this group at http://groups.google.com/group/doctrine-user.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>  --
>>> You received this message because you are subscribed to the Google
>>> Groups "doctrine-user" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To post to this group, send email to [email protected].
>>> Visit this group at http://groups.google.com/group/doctrine-user.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "doctrine-user" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/doctrine-user.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> --
> Rodrigo Wanderley de Melo Cardoso
> PHP Web Developer - Bacharel em Matemática Aplicada e Computacional -
> UFRRJ
> Estudante MBA - Engenharia de Softwares Orientada para Serviços - Veris
> IBTA Metrocamp
> Facebook <http://www.facebook.com/pokemaobr> LinkedIn
> <http://www.linkedin.com/in/rwdmc> Twitter
> <http://www.twitter.com/pokemaobr>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "doctrine-user" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/doctrine-user.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"doctrine-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/doctrine-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to