Symfony,控制器和捆绑包之间的路由冲突

亚历克斯·里德

例如简单的控制器:

    /**
     * @Route("/{identifier}", name="page")
     */
    public function page(Request $request, string $identifier)
    {
        $page = $this->pageRepository->findOneBy(['identifier' => $identifier]);

        if (!$page || !$page->getEnabled()) {
            throw $this->createNotFoundException();
        }
        
         return $this->render('cms/index.html.twig', []);
     }

并且有一个捆绑包来管理来自管理页面 elfinder 的图像,它将进入/elfinder链接。

而不是得到捆绑控制器,我的控制器得到了。

/{identifier} === /elfinder

人们在这种情况下通常会如何行动?

我尝试设置不同的优先级,但没有帮助

哈维登特

尝试使用 annotations.yaml 文件中所需的优先级添加控制器。因此,如果您在第一个控制器中得到 404,Symfony 将尝试从下一个控制器打开路由

将您的控制器添加到config/routes/annotations.yaml

page:
    resource: App\Controller\_YourFistController_
    type: annotation

elfinder:
    resource: FM\ElfinderBundle\Controller\ElFinderController
    type: annotation

或者如果这个选项不适合你,那么你可以试试可选参数prioritysymfony 文档

添加到配置文件config/routes.yaml

elfinder:
    path: /elfinder/{instance}/{homeFolder}
    priority: 2
    controller: FM\ElfinderBundle\Controller\ElFinderController::show

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章