提问者:小点点

Magento 2: ScopeConfig错误,当我使用它在\Magento\联系人\控制器\索引\后类


首先,我扩展了联系我们的模块,我想检查后端是否启用或不使用ScopeConfig,但我遇到了这个问题。我已经尝试删除生成的文件并运行安装升级命令。

根据我的假设,我认为我的代码中缺少一些东西

代码:

<?php
namespace SCI\Form\Controller\Index;

use Magento\Framework\App\Config\ScopeConfigInterface;
use Magento\Store\Model\ScopeInterface;

class Post extends \Magento\Contact\Controller\Index\Post
{
    protected $scopeConfig;

    public function __construct(
        \Magento\Framework\App\Action\Context $context,
        \Magento\Store\Model\StoreManagerInterface $storeManager,
        ScopeConfigInterface $scopeConfig,
        array $data = []
    ){
        parent::__construct($context,$data);
        $this->_scopeConfig = $scopeConfig;
        $this->_storeManager = $storeManager;

    }

    public function ifEnabled(){
        return $this->_scopeConfig->getValue('extended_contact/config/extended_contact_enabled',ScopeInterface::SCOPE_STORE);
    }

    public function execute()
    {
        die($this->ifEnabled());

        return parent::execute();

    }
}

注意:当我将类格式\Magento\Contact\Controller\Index\Post更改为\Magento\Framework\App\Action\Action时,它可以工作

错误:

致命错误:未捕获的TypeError:传递给Magento\Contact\Controller\Index\Post的参数2::\uu construct()必须实现接口Magento\Contact\Model\ConfigInterface,给定数组,在C:\xampp\htdocs\training\app\code\SCI\Form\Controller\Index\Post中调用。php位于第17行,在C:\xampp\htdocs\training\vendor\magento\module contact\Controller\Index\Post中定义。php:49堆栈跟踪:#0 C:\xampp\htdocs\training\app\code\SCI\Form\Controller\Index\Post。php(17):Magento\Contact\Controller\Index\Post-


共1个答案

匿名用户

您可以尝试将函数更改为以下代码以修复错误。

public function ifEnabled(){
    $storeScope = \Magento\Store\Model\ScopeInterface::SCOPE_STORE;

    return $this->_scopeConfig->getValue(
        'extended_contact/config/extended_contact_enabled',
        $storeScope
    );
}