Magento 2.2.4: Не работает зависимость от другой группы


Я использую magento 2.2.4. В конфигурации системы я хочу применить зависимость.

Но и группы, и поля разные. Он работает в одной группе. Но я не могу получить вывод для другой группы.

Как это сделать? Пожалуйста, помогите мне.

Я добавил свой system.xml код файла:

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>
Author: Niket, 2018-08-03

3 answers

Это работает только в том случае, если ваш идентификатор поля находится под идентификатором родительской группы. Для применения зависимости в другой группе вам нужно добавить следующее:

<?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>

Надеюсь, это может быть полезно для вас. Это должно сработать.

 2
Author: Rohan Hapani, 2018-08-03 17:27:54

Проблему можно решить, просто указав полный путь, если поле не входит в текущую группу. например,

<depends>
    <field id="section/group/field">1</field>
</depends>

Удачи!

 2
Author: PROGOSTECH, 2018-08-03 17:24:22

Если это одна и та же группа, вы можете использовать подстановочный знак для идентификатора поля как

<depends>
    <field id="*/*/[depends_on_field_id]">someValue</field>
</depends>

Если это тот же раздел, вам также разрешено использовать подстановочный знак в качестве

<depends>
    <field id="*/[other_group_id]/[depends_on_field_id]">someValue</field>
</depends>

Так что в вашем случае этого может быть достаточно

<depends>
    <field id="*/groupID/fieldID">1</field>
</depends>
 0
Author: Mammouth, 2019-10-22 16:11:53