Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从Magento系统配置中获取数据_Php_Magento - Fatal编程技术网

Php 如何从Magento系统配置中获取数据

Php 如何从Magento系统配置中获取数据,php,magento,Php,Magento,我只是想知道如何获取自定义模块的配置数据。可以从管理系统->配置中设置配置,以及如何在前端拉取它 $configValue = Mage::getStoreConfig('sectionName/groupName/fieldName'); 模块的etc/system.xml文件中有节名、组名和字段名 上面的代码将自动获取当前查看的存储的配置值 如果要获取当前查看的存储以外的任何其他存储的配置值,则可以指定存储ID作为getStoreConfig函数的第二个参数,如下所示: $store =

我只是想知道如何获取自定义模块的配置数据。可以从管理
系统->配置
中设置配置,以及如何在前端拉取它

$configValue = Mage::getStoreConfig('sectionName/groupName/fieldName');
模块的etc/system.xml文件中有节名组名字段名

上面的代码将自动获取当前查看的存储的配置值

如果要获取当前查看的存储以外的任何其他存储的配置值,则可以指定存储ID作为
getStoreConfig
函数的第二个参数,如下所示:

$store = Mage::app()->getStore(); // store info
$configValue = Mage::getStoreConfig('sectionName/groupName/fieldName', $store);

您应该使用以下代码

$configValue = Mage::getStoreConfig(
                   'sectionName/groupName/fieldName',
                   Mage::app()->getStore()
               ); 
Mage::app()->getStore()
这将在获取值中添加存储代码,以便您可以为当前存储获取正确的配置值。这将避免不正确的存储值,因为magento还用于多个存储/视图,所以必须添加存储代码才能获取magento中的任何内容

如果我们配置了多个存储或多个视图,那么这将确保我们获得当前存储的值 (下面提供了magento 2示例)

模块的etc/system.xml文件中有节名组名字段名

PHP语法:

Mage::getStoreConfig('sectionName/groupName/fieldName');
从管理员中的编辑器中,例如CMS页面或静态块的内容;目录类别、目录产品等的描述/简短描述

{{config path="sectionName/groupName/fieldName"}}
对于“在编辑器内”的方法,字段值必须通过要解析的{…}内容的过滤器传递。开箱即用,Magento将对类别和产品描述以及CMS页面和静态块执行此操作。但是,如果您要在自己的自定义视图脚本中输出内容,并希望解析出这些变量,则可以这样做:

<?php
    $example = Mage::getModel('identifier/name')->load(1);
    $filter  = Mage::getModel('cms/template_filter');
    echo $filter->filter($example->getData('field'));
?>
任何其他PHP类:

如果类(没有父类)没有通过构造函数注入
\Magento\Framework\App\Config\ScopeConfigInterface
,则必须将其添加到类中

// ... Remaining class definition above...

/**
 * @var \Magento\Framework\App\Config\ScopeConfigInterface
 */
protected $_scopeConfig;

/**
 * Constructor
 */
public function __construct(
    \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
    // ...any other injected classes the class depends on...
) {
  $this->_scopeConfig = $scopeConfig;
  // Remaining constructor logic...
}

// ...remaining class definition below...
一旦将其注入到类中,现在就可以使用上面为块类给出的相同语法示例获取存储配置值


请注意,在修改任何类的_construct()参数列表后,您可能需要清除生成的类以及依赖项注入目录:
var/generation
&
var/di

,例如,如果您想从配置->存储电子邮件地址获取电子邮件地址。 您可以从wich store指定您想要的地址:

$store=Mage::app()->getStore()->getStoreId(); 
/* Sender Name */
Mage::getStoreConfig('trans_email/ident_general/name',$store); 
/* Sender Email */
Mage::getStoreConfig('trans_email/ident_general/email',$store);

您需要从自定义数据库表中获取数据吗?请将下面的答案标记为正确答案!谢谢,我不这么认为。
getStoreConfig()
方法看起来像
returnself::app()->getStore($store)->getConfig($path),因此,如果不传递第二个参数,结果会是一样的。我只想指出,虽然在大多数情况下您都是正确的,但在某些情况下,这并不能像预期的那样起作用,为了省心,我建议添加第二个store参数。对我来说,没有
Mage::app()->getStore()它就不起作用
对于Magento v1.9.x,上述答案非常完美。我只想补充一件事。system.xml中指定的所有值都存储在core_config_数据表中,例如,如果您希望不安全基本url的值在core_config_数据中搜索path=“web/unsecure/base_url”,您可以通过编程方式通过$configValue=Mage::getStoreConfig('web/secure/base_url')获取该值;事实上,它甚至必须被搜索是愚蠢的。约定优先于配置。嗨,穆克什。你知道如何用这种方式上传(然后用Mage::StoreConfig进入某个块)图像吗?我的表单中有一个图像,设置为image,但是当我使用::StoreConfig获得它时,我在前端(在一个块中)得到的只是姓氏(“Milka.jpg”),即不是完整的URL?Mage
的完整限定名是什么?它是
\Magento\Framework\View\Element\Context
?在我的安装中似乎没有任何类似的类……完美的答案加上解释+1:)
$store=Mage::app()->getStore()->getStoreId(); 
/* Sender Name */
Mage::getStoreConfig('trans_email/ident_general/name',$store); 
/* Sender Email */
Mage::getStoreConfig('trans_email/ident_general/email',$store);