Cách nhận giá trị từ bảng `core_config_data` trong Magento 2


41

Magento 1.x sử dụng Mage::getStoreConfig('sections/groups/fields')lấy dữ liệu trên core_config_databàn.

Làm thế nào để Magento2 nhận được giá trị từ core_config_databảng?

Câu trả lời:


100

Chúng ta cần gọi phương thức mặc định có sẵn.

Chỉ sử dụng \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, Trong đối số hàm tạo của bạn và đặt thuộc tính lớp:$this->scopeConfig = $scopeConfig;

Bây giờ để có được giá trị cấu hình chỉ cần sử dụng

$this->scopeConfig->getValue('dev/debug/template_hints', \Magento\Store\Model\ScopeInterface::SCOPE_STORE);

Tôi đã nhận được câu trả lời từ liên kết này và tham khảo điều này


3
một Meenakshi tốt! giữ nó lên
anshuman

Làm thế nào để bạn có được chúng từ một tập lệnh riêng biệt, không phải từ trong hệ thống tập tin magento hoặc một mô-đun? Nếu bạn tạo một lớp trong tập lệnh của mình và khởi tạo nó, lớp đó nên kế thừa từ cái gì và làm thế nào để bạn đảm bảo nó tải tất cả các tệp thích hợp?
ahnbizcad

Phạm vi nào có được cấu hình từ? Các lượt xem hiện đang được xem bởi khách hàng?
Erfan

vâng, nó sẽ lấy số lượt xem hiện tại của khách hàng
MeenakshiSundaram R

@MeenakshiSundaramR Tôi đang hỏi ngoài bài đăng này, làm thế nào để giao hàng miễn phí cho các sản phẩm được chọn bằng cách sử dụng sku. Hãy giúp tôi tại magento.stackexchange.com/q/215022/57334
zus

4

Tạo một hàm để nhận các giá trị cấu hình trong trình trợ giúp của mô-đun tùy chỉnh của bạn.

public function getConfig($config_path)
{
    return $this->scopeConfig->getValue(
            $config_path,
            \Magento\Store\Model\ScopeInterface::SCOPE_STORE
            );
}

và gọi bất cứ nơi nào bạn muốn, ví dụ như trong test.phtml

$moduleStatus = $this->helper('Customvendorname\Custommodulename\Helper\Data')->getConfig('sectionid/groupid/fieldid');

Trong khối và người trợ giúp gọi như thế này:

 $this->_objectManager->create('Customvendorname\Custommodulename\Helper\Data')->getConfig('sectionid/groupid/fieldid');

7
Đó là khuyến nghị trong M2 để thích chấp nhận DI. Vì vậy, sử dụng $this->_objectManager->create(...)nên tránh.
Anna Völkl

Cảm ơn @ AnnaVölkl, sau đó thay thế đó là gì xin vui lòng bạn có thể gửi một câu trả lời tương tự ở đây?
Manish

Xem câu trả lời nâng cao ở trên.
Anna Völkl

3

Tôi đã sử dụng phương pháp sau để truy xuất các biến

if (empty($this->_data['welcome'])) {
        $this->_data['welcome'] = $this->_scopeConfig->getValue(
            'design/header/welcome',
            \Magento\Store\Model\ScopeInterface::SCOPE_STORE
        );
    }
    return $this->_data['welcome'];
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.