我正在使用 Symfony 4.4,我只想在
dev
或 test
环境中授予对某些路由的访问权限。
我的路线在实体中定义(使用 Api 平台):
* "postUserTest"={
* "security" = "'%kernel.environment%' !== 'prod'",
* "method"="POST",
我尝试直接转储表达式语言的结果:
// $env = prod
$env = $this->getParameter('kernel.environment');
// $result0 = '%kernel.environment%'
$result0 = $expressionLanguage->evaluate("'%kernel.environment%'");
// $result1 = false
$result1 = $expressionLanguage->evaluate("'%kernel.environment%' === 'prod'");
// $result2 = true
$result2 = $expressionLanguage->evaluate("'%kernel.environment%' !== 'prod'");
我明白
'%kernel.environment%'
没有被解析,但我如何使用环境?我确实在文档中找到了任何示例,这可能吗?
我期待这样的结果:
$result1 = $expressionLanguage->evaluate("'%kernel.environment%' === 'prod'");
在生产环境中为真,现在为假。
有更简单的方法来做到这一点。
例如,
when@dev:
/ #[When(env: 'dev')]
中添加一个 @When(env: 'dev')
部分,因为注释应该有效。routes/dev/
文件夹中,如下所述:https://symfony.com/doc/4.4/quick_tour/the_architecture.htmlapp/config/routing_dev.yml