通过 UpgradeData.php 更改商店名称
Change store name via UpgradeData.php
我是 Magento 2 的新手,我被要求编写一个更新来更改商店的名称值。
看起来像这样:
store_id |code |website_id |group_id |name |sort_order |is_active |
---------|------|-----------|---------|-----------|-----------|----------|
0 |admin |0 |0 |Admin |0 |1 |
1 |fr |1 |1 |French |0 |1 |
2 |en |1 |1 |English |0 |1 |
3 |de |1 |1 |Deutsch |0 |1 |
4 |en_us |2 |2 |USA |0 |1 |
我需要 "USA" 值为 "English US"。
这是我想出的:
<?php
namespace Dnd\Store\Setup;
use Magento\Framework\Setup\UpgradeDataInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;
use Magento\Framework\Setup\ModuleContextInterface;
/**
* Class UpgradeData
*
*/
class UpgradeData implements UpgradeDataInterface
{
/**
* @param ModuleDataSetupInterface $setup
* @param ModuleContextInterface $context
*/
public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
{
$installer = $setup;
if (version_compare($context->getVersion(), '2.0.1', '<=')) {
if ($installer->getTableRow($installer->getTable('store'), 'store_id', 4)) {
$installer->updateTableRow(
$installer->getTable('store'),
'store_id',
4,
'name',
'English US'
);
}
}
}
}
但是当我 php bin/magento setup:upgrade
时它什么也没做
你有什么想法吗?
EDIT : 升级功能中的版本比较 + module.xml :
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Dnd_Store" setup_version="2.0.1">
<sequence>
<module name="Magento_Store"/>
</sequence>
</module>
</config>
setup_module 数据:2.0.1
我刚刚检查了您的代码,它工作正常。因此,我假设您的模块版本有问题。能提供一下模块中etc/module.xml的内容和setup_moduletable中数据的版本吗?
我认为版本有问题,无论是比较函数中的值还是 module.xml
我是 Magento 2 的新手,我被要求编写一个更新来更改商店的名称值。
看起来像这样:
store_id |code |website_id |group_id |name |sort_order |is_active |
---------|------|-----------|---------|-----------|-----------|----------|
0 |admin |0 |0 |Admin |0 |1 |
1 |fr |1 |1 |French |0 |1 |
2 |en |1 |1 |English |0 |1 |
3 |de |1 |1 |Deutsch |0 |1 |
4 |en_us |2 |2 |USA |0 |1 |
我需要 "USA" 值为 "English US"。
这是我想出的:
<?php
namespace Dnd\Store\Setup;
use Magento\Framework\Setup\UpgradeDataInterface;
use Magento\Framework\Setup\ModuleDataSetupInterface;
use Magento\Framework\Setup\ModuleContextInterface;
/**
* Class UpgradeData
*
*/
class UpgradeData implements UpgradeDataInterface
{
/**
* @param ModuleDataSetupInterface $setup
* @param ModuleContextInterface $context
*/
public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
{
$installer = $setup;
if (version_compare($context->getVersion(), '2.0.1', '<=')) {
if ($installer->getTableRow($installer->getTable('store'), 'store_id', 4)) {
$installer->updateTableRow(
$installer->getTable('store'),
'store_id',
4,
'name',
'English US'
);
}
}
}
}
但是当我 php bin/magento setup:upgrade
你有什么想法吗?
EDIT : 升级功能中的版本比较 + module.xml :
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Dnd_Store" setup_version="2.0.1">
<sequence>
<module name="Magento_Store"/>
</sequence>
</module>
</config>
setup_module 数据:2.0.1
我刚刚检查了您的代码,它工作正常。因此,我假设您的模块版本有问题。能提供一下模块中etc/module.xml的内容和setup_moduletable中数据的版本吗?
我认为版本有问题,无论是比较函数中的值还是 module.xml