Setting parent document to a Generic Node created on-the-fly in a prePersist listener causes PHPCRException
- Dominant language
- PHP
- Stars
- 181
- Forks
- 102
- PR merge metrics
- No merged PRs in 30d
Description
Hello,
I'm trying to "move" a new (yes a new) document (`Symfony\Cmf\Bundle\RoutingBundle\Doctrine\Phpcr\Route`) to another node by using `setParentDocument` in a `prePersist` event listener.
The target node is created on the fly if it's not there, using `NodeHelper::createPath` (I only need a generic target node).
``` php
public function prePersist(LifecycleEventArgs $args)
{
$route = $args->getObject();
$dm = $args->getObjectManager();
if ($route instanceof Route) {
$localeNodePath = $this->routeRoot . '/' . $this->locale;
if (!$localeNode = $dm->find(null, $localeNodePath)) {
$session = $dm->getPhpcrSession();
$localeNode = NodeHelper::createPath($session, $localeNodePath);
/* $session->save(); I believe this is not needed? */
}
$route->setParentDocument($localeNode);
}
}
```
The exception message is `Document is not managed and has no id ....`
Perhaps this is caused by the fact that the target node is created on the fly, but even calling `$session->save` doesn't help.
Any insight is greatly appreciated.
Contributor guide
Assessment
This issue has not been assessed yet.