首先,我扩展了联系我们的模块,我想检查后端是否启用或不使用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-
您可以尝试将函数更改为以下代码以修复错误。
public function ifEnabled(){
$storeScope = \Magento\Store\Model\ScopeInterface::SCOPE_STORE;
return $this->_scopeConfig->getValue(
'extended_contact/config/extended_contact_enabled',
$storeScope
);
}