2016-01-06 25 views
2

您好!
有一部分常規應用程序/ etc/di.xml,我需要在閱讀器數組中添加附加值。magento 2如何向di.xml上的數組添加新值

<virtualType name="bodyRenderPool" type="Magento\Framework\View\Layout\ReaderPool"> 
     <arguments> 
      <argument name="readers" xsi:type="array"> 
       <item name="container" xsi:type="string">Magento\Framework\View\Layout\Reader\Container</item> 
       <item name="block" xsi:type="string">Magento\Framework\View\Layout\Reader\Block</item> 
       <item name="move" xsi:type="string">Magento\Framework\View\Layout\Reader\Move</item> 
       <item name="uiComponent" xsi:type="string">Magento\Framework\View\Layout\Reader\UiComponent</item> 
      </argument> 
     </arguments> 
    </virtualType> 

如果在di.xml我自己的模塊

<virtualType name="bodyRenderPool" type="Magento\Framework\View\Layout\ReaderPool"> 
    <arguments> 
     <argument name="readers" xsi:type="array"> 
      <item name="customEl" xsi:type="string">Company\MyModule\View\Layout\Reader\Customel</item> 
     </argument> 
    </arguments> 
</virtualType> 

該數組被覆蓋的指示。
如何在閱讀器數組中添加一個元素?

+0

你解決了這個問題嗎?如果是,那麼解決方案是什麼? –

回答

2

你的錯也許在di.xml範圍

它可以有三個範圍:

etc/di.xml 
etc/frontend/di.xml 
etc/adminhtml/di.xml 

確保您di.xml和di.xml要覆蓋具有相同的範圍。

在你的情況下,你可能會把di.xml放到前端範圍,而magento則更喜歡用你的di.xml來合併它。

+0

我和OP有同樣的問題。特別是修改從'sales_order'複製到'sales_order_grid'的字段數組,並且該數組被覆蓋而不是添加到。正如你所建議的那樣,'di.xml'的範圍是問題/解決方案。謝謝! – cyk