마 젠토 2-phtml 파일에서 확장의 구성 값을 얻는 방법?


21

Magento 2-베타와 함께 일하고 있습니다.

그러나 phtml 파일에서 구성 값을 얻는 방법을 찾을 수 없습니다.

예 : Magento_Catalog/templates/product/list.phtml파일 에서 사용자 정의 모듈 구성 값을 가져 오려고 합니다.

이 작업을 수행하는 방법을 아는 사람이 있습니까?


실생활의 모범을 보여줄 수 있습니까? 정확히 무엇을 검색하려고합니까?
Marius

답변:


43

사용자 지정 모듈의 도우미에서 구성 값을 가져 오는 기능을 만들 수 있습니다.

<?php
namespace Vendor\Module\Helper;

class Data extends \Magento\Framework\App\Helper\AbstractHelper
{
    public function getConfig($config_path)
    {
        return $this->scopeConfig->getValue(
            $config_path,
            \Magento\Store\Model\ScopeInterface::SCOPE_STORE
        );
    }
}

그런 다음 모든 phtml 파일에서이 함수를 호출하도록 구성 값을 얻을 수 있습니다.

$this->helper('Vendor\Module\Helper\Data')->getConfig('section/group/field');

1
ScopeConfigInterface가 추상 헬퍼 클래스에서 사용 가능하다는 점을 지적 해 주셔서 감사합니다! 재정의를 저장했습니다.
Robbie Averill

이것이 기본 구성 값으로 어떻게 작동합니까? 나는 가게의 설정에서 전화 번호 세트를 얻는 방법을 파악하고 header.phtml에 표시하기 위해 노력하고있어
필립 Deatherage을

@Dmitry 여전히 \Magento\Framework\App\Config\ScopeConfigInterface도우미의 생성자 에 주입해야한다고 생각합니다
fmsthird

6

다른 방법은 다음과 같습니다

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$conf = $objectManager->get('Magento\Framework\App\Config\ScopeConfigInterface')->getValue('group/field/value');

모델 인스턴스화를 위해 객체 관리자를 사용해서는 안됩니다.
Dave

여기가 너무 잘못되었습니다.
medina

0

Rushvi의 답변 수정 : section/group/field

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$conf = $objectManager->get('Magento\Framework\App\Config\ScopeConfigInterface')->getValue('section/group/field');

또한 상점 필터를 추가하려면 상점 구성 레벨에서 저장하는 경우 텍스트를 표시하려면 다음을 추가하십시오.

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$storeScope = \Magento\Store\Model\ScopeInterface::SCOPE_STORES;
$conf = $objectManager->get('Magento\Framework\App\Config\ScopeConfigInterface')->getValue('carriers/freeshipping/extra_info',$storeScope);

두 번째로 비평의 경우 : DI를 통해 블록 클래스의 생성자에 포함시키는 것이 좋습니다. 여기는 개념입니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.