我目前正在为我最近开始的一个项目研究 Symfony CMF 和 PHPCR。我目前想弄清楚的是如何创建一个Route
并将其保存到数据库中。据我了解,我必须使用Symfony\Cmf\Bundle\RoutingBundle\Doctrine\Phpcr\Route
该元素并将其保存到数据库中。这工作正常,但会自动生成一个路由路径,这不是我想要的。我需要做的是生成一个链接到特定控制器的自定义路由。这是我的代码:
$em = $this->get('doctrine_phpcr.odm.document_manager');
$parent = $em->find(null, '/cms/routes');
$route = new \Symfony\Cmf\Bundle\RoutingBundle\Doctrine\Phpcr\Route();
$route->setParentDocument($parent);
$route->setName('my_route_name');
$route->setDefault('_controller', 'AppBaseBundle:Frontend/Users:index');
$em->persist($route);
$em->flush();
如果我执行此代码,生成的路线将是/cms/routes/my_route_name
. 据我所知,您可以使用$route->setPath('/testing');
,但这会产生以下异常:
无法确定前缀。这是一个新的、未持久化的文档,或者调用 setPrefix 的侦听器未正确设置。
有没有人有任何想法如何解决这个问题?