Magento 2.2.4 : Different group dependency not working
-
21-01-2021 - |
문제
I'm using magento 2.2.4. In system configuration, I want to do apply dependency.
But, both groups and fields are different. It's working in same group. But, I can't get output for different group.
How to do it ? Please help me.
I added my system.xml file code :
system.xml :
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd">
<system>
<section id="sectionID" translate="label" type="text" sortOrder="200" showInDefault="1" showInWebsite="1" showInStore="1">
<label>Name</label>
<tab>TabName</tab>
<resource>CompanyName_ModuleName::methodName</resource>
<group id="groupID" translate="label" type="text" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">
<label>General Configuration</label>
<field id="fieldID" translate="label" type="select" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">
<label>Enable</label>
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
</field>
</group>
<group id="groupID2" translate="label" type="text" sortOrder="20" showInDefault="1" showInWebsite="1" showInStore="1">
<label>Form Configuration</label>
<field id="fieldID2" translate="label" type="select" sortOrder="30" showInDefault="1" showInWebsite="1" showInStore="1">
<label>Check</label>
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
<depends>
<field id="fieldID">1</field>
</depends>
</field>
</group>
</section>
</system>
</config>
해결책
It's only working if your field ID is under parent group ID. For apply dependency in other group, You need to add like this :
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd">
<system>
<section id="sectionID" translate="label" type="text" sortOrder="200" showInDefault="1" showInWebsite="1" showInStore="1">
<label>Name</label>
<tab>TabName</tab>
<resource>CompanyName_ModuleName::methodName</resource>
<group id="groupID" translate="label" type="text" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">
<label>General Configuration</label>
<field id="fieldID" translate="label" type="select" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">
<label>Enable</label>
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
</field>
</group>
<group id="groupID2" translate="label" type="text" sortOrder="20" showInDefault="1" showInWebsite="1" showInStore="1">
<label>Form Configuration</label>
<field id="fieldID2" translate="label" type="select" sortOrder="30" showInDefault="1" showInWebsite="1" showInStore="1">
<label>Check</label>
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
<depends>
<field id="sectionID/groupID/fieldID">1</field>
</depends>
</field>
</group>
</section>
</system>
</config>
Hope, It may be helpful for you. It should be working.
다른 팁
The issue can be solved simply by mentioning the full path if the field is not in the current group. e.g.
<depends>
<field id="section/group/field">1</field>
</depends>
Good Luck!
if it is a same group, you can use wildcard for field id as
<depends>
<field id="*/*/[depends_on_field_id]">someValue</field>
</depends>
if it is a same section, you also allowed to use wildcard as
<depends>
<field id="*/[other_group_id]/[depends_on_field_id]">someValue</field>
</depends>
so this could be enough in your case
<depends>
<field id="*/groupID/fieldID">1</field>
</depends>
제휴하지 않습니다 magento.stackexchange