2016-01-06 30 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