php - 如何在 Symfony 路由器中设置可选的主机参数?
问题描述
我想在 Symfony 路由器中设置可选的主机参数。我在 localhost:8000 上尝试它,如果我调用 en.localhost:8000 它可以工作,但是当我删除第一个 lang 参数时,它与路由不匹配。路由在 route.yaml 文件中定义:
blog-index:
path: /blog/{page}
host: "{lang}.localhost"
controller: App\Controller\BlogController::index
defaults:
lang: 'en'
page: 1
requirements:
lang: 'en|sk'
page: '\d+'
PHP 代码如下所示:
public function index(Request $request, $lang = 'sk', $page = 1)
{
return $this->render('blog/index.html.twig', [
'route' => $request->attributes->get('_route'),
'route_params' => $request->attributes->get('_route_params'),
'page' => $page,
'locale' => $lang,
]);
}
如果我运行http://localhost:8000/blog
错误消息说:
找不到“GET /blog”的路线。
文档中的示例使用default
所以我认为它也应该使用可选lang
参数运行。我错过了什么吗?
解决方案
推荐阅读
- java - 如何在泛型类中正确键入 no-arg 和 withVar 构造函数?
- javascript - 使用 jQuery 进入另一个锚点之前,保持超级菜单可见
- javascript - 使用托管字段获得付款随机数后提交 Braintree 表单
- bash - 如果减法与 0 不同,我想停止脚本
- php - GET 方法链接的 PHP 替换
- d3.js - 删除 D3 中的所有 svg 元素保存一些指定的
- r - 如何使用多边形 shapefile 按区域提取 NetCDF 数据帧
- android - 尝试从视图模型获取方法时无法解析片段中的方法/符号
- python - 新数据框:按日期分组、按时间分组、使用 if 条件求和值
- css - 缩小 CSS 网格单元格的宽度以为侧边栏腾出空间