gpt4 book ai didi

php - Symfony 3 - 路由不包括特定路径的开头(url)

转载 作者:行者123 更新时间:2023-12-05 02:18:21 24 4
gpt4 key购买 nike

我正在使用 Symfony 3.2.9 创建一个应用程序,我想做一个管理面板来管理应用程序。应用程序像 CMS 一样工作,因此使用 URL 创建新页面,如 domain.com/pagename1 和 domain.com/pagename1/subpagelevel2 等。问题是当我想为管理面板创建 URL 时,URL 应该看起来像:domain.com/admin,但管理面板也需要一些子页面,比如 domain.com/admin/manage 或 domain.com/admin/manage/编辑/1等。

我创建了带有路由的 DefaultController:

/**
* @Route("/", name="homepage")
*/

和 AdminController 的路由如下:

/**
* @Route("/admin", name="admin")
*/

问题是,当我想动态创建应用程序的新子页面时,我需要像这样创建路由:

/**
* @Route("/{page}")
*/

但这会覆盖我的管理面板子页面(例如 domain.com/admin/manage)。

是否可以通过 AdminController 从默认的 DefaultController 中排除或覆盖路径?我希望有可能从 DefaultController 创建所有 URL-s,但以 domain.com/admin 等开头的路径除外。

最佳答案

来自 https://symfony.com/doc/current/routing.html 中的文档您可以使用 requirements 参数来指定更严格的匹配

我猜这样的东西会起作用:

默认 Controller :

/**
* @Route("/", name="homepage")
*/

管理 Controller :

/**
* @Route("/admin", name="admin")
*/

其他 Controller :

/**
* we exclude page=admin from this controller
* @Route("/{page}", requirements={"page": "^(?!admin).+"}))
*/

关于php - Symfony 3 - 路由不包括特定路径的开头(url),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45531537/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com