我尝试在 config / *目录中添加一些配置。 我将使用一个非常简单的示例来说明问题,但请记住,任何服务的每个 .yaml 配置文件都会出现此问题。我无法在配置文件之间进行继承。
所以在 services.yaml 中,我有以下代码:
#config/services.yaml
parameters:
app.debug: 0
smtp.user: ''
app.locale: '%kernel.default_locale%'
app.product.number_per_page: 20
container.dumper.inline_factories: true
services:
# default configuration for services in *this* file
_defaults:
autowire: true # Automatically injects dependencies in your services.
autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
bind:
$locale: '%kernel.default_locale%'
$product_per_page: '%app.product.number_per_page%'
然后我尝试将$product_per_page
访问我的控制器:
#src/Controller/myController.php
public function listProduct(int $product_per_page){
dump($product_per_page);
die();
}
执行此代码时,它会给我以下错误:
无法解析参数$ product_per_page的 “ App \ Controller \ ProductController :: listproduct()”,也许您忘记了 将控制器注册为服务,或者错过使用 “ controller.service_arguments”?
所以我必须复制此配置文件(config/services.yaml
),然后将其粘贴到config / services_dev.yaml, services_prod.yaml, services_test.yaml
然后它开始工作,但这根本不合适...
因为我必须对每个配置文件都执行此操作...因此,每次更新任何配置时,我都会复制并粘贴到每个环境中。
当然,我已经尝试过cache:clear
和composer update
,但是没有任何作用。
我期望Symfony按照解释here的方式读取文件,但对我来说不起作用。
我已经尝试创建另一个Symfony项目,现在该项目正在运行。但是我想了解什么是错的?我做过什么事情,导致即使在更新Symfony之后,即使在更新作曲家之后,甚至在清除缓存后,也无法得到正确的错误。
除了创建一个新的Symfony项目,您可以在其中复制旧文件中的文件,我无法相信。