Установочные данные не работают в Magento 2.1
У меня есть Installdata скрипт ниже, который отлично работает на Magento 2.2, но не удалось установить данные на Magento 2.1
class InstallData implements \Magento\Framework\Setup\InstallDataInterface
{
public function install(
\Magento\Framework\Setup\ModuleDataSetupInterface $setup,
\Magento\Framework\Setup\ModuleContextInterface $context
) {
$contextInstall = $context;
$contextInstall->getVersion();
$data = [];
$statuses = [
'data_one' => __('Data One'),
'data_two' => __('Data Two'),
'data_three' => __('Data Three'),
];
foreach ($statuses as $code => $info) {
$data[] = ['status' => $code, 'label' => $info];
}
if (!$setup->tableExists('table_name')) {
$setup->getConnection()->insertArray($setup->getTable('table_name'), ['db_colum_one', 'db_column_two'], $data);
}
}
}
Может ли кто-нибудь помочь, если я что-то упустил?
2
Author: Qaisar Satti, 2018-05-14
2 answers
Проблема в вашем условии if.
if (!$setup->tableExists('table_name')) {
Ваше условие - проверить, не завершается ли таблица , а затем выполнить запрос. если таблица создана, то она не будет выполнена.Я думаю, что так и произошло. Ваше решение будет изменено, если коллекция пуста, а затем добавьте записи.
2
Author: Qaisar Satti, 2018-05-14 12:09:37