Magento 2 관리자 시스템 구성에서 테이블 설정을 만드는 방법은 무엇입니까?


9

magento 1에 따르면 "adminhtml / system_config_backend_serialized_array"에서 다음과 같은 테이블을 만듭니다. 여기에 이미지 설명을 입력하십시오

내 질문은 : 어떻게 우리가 magento 2에서 그것을 만들 수 있습니까?

편집 : 마지막으로 @Marius help : System => Configuration => General => Design => Design Theme의 User-Agent Exceptions 필드입니다.

여기에 이미지 설명을 입력하십시오

"Magento \ Config \ Block \ System \ Config \ Form \ Field \ Regexceptions"코드를보고이 필드를 기반으로 새 테이블 구성을 만들 수 있습니다.


magento.stackexchange.com/questions/86147/을 살펴보십시오. 도움이 될 것입니다
Bojjaiah

감사합니다. 그러나 @Marius의 대답은 내가 필요한 것이라고 생각합니다.
thienphucvx

답변:


15

Company / Modulename / etc / adminhtml / system.xml을 사용하여 수행 할 수 있습니다.

섹션-> 그룹 필드에서

<field id="mapping" translate="label comment tooltip" sortOrder="80" showInDefault="1" showInWebsite="1" showInStore="0">
    <label>Customer Fields Mapping</label>
    <frontend_model>Company\Modulename\Block\Adminhtml\System\Config\Form\Field\Customermap</frontend_model>
    <backend_model>Magento\Config\Model\Config\Backend\Serialized\ArraySerialized</backend_model>
    <comment>
        <![CDATA[Add the comments!]]>
    </comment>
    <tooltip>Map the magento customer field to custom module merge_fields</tooltip>
</field>

블록 내부의 프론트 엔드 모델 파일에서

<?php
namespace Company\Modulename\Block\Adminhtml\System\Config\Form\Field;

class Customermap extends \Magento\Config\Block\System\Config\Form\Field\FieldArray\AbstractFieldArray
{
    /**
     * @var \Magento\Framework\Data\Form\Element\Factory
     */
    protected $_elementFactory;

    /**
     * @param \Magento\Backend\Block\Template\Context $context
     * @param \Magento\Framework\Data\Form\Element\Factory $elementFactory
     * @param array $data
     */
    public function __construct(
        \Magento\Backend\Block\Template\Context $context,
        \Magento\Framework\Data\Form\Element\Factory $elementFactory,
        array $data = []
    )
    {
        $this->_elementFactory  = $elementFactory;
        parent::__construct($context,$data);
    }
    protected function _construct()
    {
        $this->addColumn('field1', ['label' => __('Field1')]);
        $this->addColumn('field2', ['label' => __('FIeld2')]);
        $this->_addAfter = false;
        $this->_addButtonLabel = __('Add');
        parent::_construct();
    }

}

구성 영역에 표가 표시되고 값을 저장 한 후 core_config_data표 안에 값이 저장됩니다 .


잘 작동합니다. 하지만 내가 저장 한 것처럼 <test>표시 &lt;test2&gt;됩니다. 어떠한 제안?
Bojjaiah

안녕하세요, 의심의 여지가 있습니다. 동일한 필드로 구성된 다른 그룹, 프런트 엔드 모델, system.xml에 추가 한 백엔드 모델을 추가하려면 동일한 system.xml 파일로 다른 그룹을 어떻게 추가합니까? 새 그룹을 추가하는 동안 템플릿을 올바르게로드하는지 여부
이사

@Rakesh Jesadiya, 좀 봐주세요 대답 magento.stackexchange.com/questions/212229/…
Jaisa

안녕하세요 @ rakesh Jesadiya, 위의 코드를 사용하여 필드를 추가했지만 저장할 수 없으며 콘솔 필드 (qty)에 오류가 정의되지 않았습니다.
faizanbeg

이 관리 구성 테이블에서 프로그래밍 방식으로 행을 만드는 방법은 무엇입니까?
Ashwani Shukla

4

adminhtml/system_config_backend_serialized_arrayMagento 2 와 동일합니다 Magento\Config\Model\Config\Backend\Serialized\ArraySerialized. config
에서 필드 User-Agent Exceptions를 예로 들어 복제를 시도 할 수 있습니다.
이 필드는Magento/Backend/etc/adminhtml/system.xml


예. 내가 찾는 바로 그거야. 대단히 감사합니다.
thienphucvx

@marius 안녕하세요, $ this-> addColumn ( 'value', [ 'label'=> __ ( 'Value')]) 코드를 사용하여 필드를 추가했습니다. $ this-> addColumn ( 'qty', [ 'label'=> __ ( 'Qty')]) ;; 콘솔 필드 (qty)에 오류가 있지만 저장하지 못했습니다. 도와주세요
faizanbeg
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.