0
我試圖注入一個對象到我的服務之一,以及另一個服務。第二個參數只是一個對象,但是當在services.yml文件中聲明它時,我會收到一個異常,它期待一個對象,但是會給出一個字符串。Symfony服務容器注入字符串不是對象
services.yml
parameters:
app.my_class.class: AppBundle\MyClass
app.object_to_inject.class: AppBundle\InjectObject
services:
app.my_service:
class: %app.my_class.class%
arguments: [@app.another_service, %app.object_to_inject.class%]
導致:
Catchable Fatal Error: Argument 2 passed to AppBundle\MyClass::__construct() must be an instance of AppBundle\InjectObject, string given
我試過報價,unquoting並採用新的生產線,而不是方括號:
arguments
- @app.another_service
- %app.object_to_inject.class%
使用多個參數時,這僅僅是這樣嗎?因爲我有一個服務只是使用%class%語法作爲單個參數,並注入對象,而不是字符串 – iswinky
我只有在我的服務中添加了類作爲參數和變量作爲參數字符串。我可能會依賴於你試圖注入的類是否有任何參數本身。如果我稍後獲得時間,我會運行一些測試並找出答案。 – Rooneyl
我試圖注入的類作爲第二個參數沒有任何構造函數參數。猜測你無法按照我嘗試的方式去做。乾杯,無論如何都會起作用 – iswinky