symfony - 仅对一条路由禁用路由前缀
问题描述
在 Symfony 5 中,我对路由使用前缀 ( fr
, en
, es
):
/routes/annotations.yaml
:
controllers:
resource: ../../src/Controller/
type: annotation
prefix: /{_locale}
requirements:
_locale: '%app_locales%'
defaults:
_locale: '%locale%'
但我只想禁用一条路由的前缀。
在/routes/annotations.yaml
前面的代码之前,我把这个没有前缀键:
video_play:
resource: ../../src/Controller/VideoPlayController.php
type: annotation
404
但是如果没有前缀 ( ),我的路线仍然无法访问,我必须在浏览器中输入 ( fr
, en
, es
)。
这在我的控制器中:
class VideoPlayController extends BaseController
{
/**
* @Route(
* "/video-play/{_token}",
* name="video_play",
* methods="GET"
* )
* @Entity("userMedia", expr="repository.findOneByToken(_token)")
*/
public function videoPlay(
UserMedia $userMedia
): Response {
...
解决方案
正如@msg 所说,路由会根据它们的顺序被覆盖。
尝试移动您的video_play
配置后
controllers:
resource: ../../src/Controller/
type: annotation
prefix: /{_locale}
requirements:
_locale: '%app_locales%'
defaults:
_locale: '%locale%'
video_play:
resource: ../../src/Controller/VideoPlayController.php
type: annotation
推荐阅读
- android - 来自外部 SDK 的间谍意图
- iis - 部署到 IIS 后无法使用 SelectPDF
- printing - PCL 文本出现偏移
- c - 带有 PIC16F877A 的 LCD 显示屏
- php - 管理员登录屏幕不适用于 mysql 数据库
- python - Tensorflow / keras multi_gpu_model 不拆分为多个 gpu
- android - 应用程序有时会因“不允许后台启动:服务意图”而崩溃
- javascript - 使用 moment.js 将小时 UTC 转换为本地
- mongodb - 不同的过时版本生活在地窖里
- python-3.x - 从轮廓中查找局部最大值点 OPENCV PYTHON