Unknown column 'msProduct.import_pid' in 'where clause' при getObject после расширения модели товара
Доброго времени суток.
После расширения модели товара (по этой документации) при попытке в отдельном php-файле (modx подключен и инициализирован) поиска товара (через getObject) по значению добавленного поля выдаёт Unknown column 'msProduct.special' in 'where clause'. Во все нужные файлы новые поля прописал, в БД их добавил. Подобных тем поиском не нашел. Код привожу ниже.
msproductdata.inc.php
Добавление поля import_pid в следующий файл думаю не обязательно (т.к. вывод в админке не нужен), но всё же добавил. Правильно я думаю на счёт «обязательности» или нет?
msproductdata.js
Единственная мысль которая осталась, дак это дописать новые поля в схему, но разумеется это бред.
Видимо при запуске моего php-скрипта не подключается плагин который расширяет модель товара. Пробовал проинициализировать minishop в скрипте, но не помогло. Подскажите, пожалуйста, в какую сторону копать дальше?
Добавлено позже: хотя при выводе товара расширенные поля в нём есть.
После расширения модели товара (по этой документации) при попытке в отдельном php-файле (modx подключен и инициализирован) поиска товара (через getObject) по значению добавленного поля выдаёт Unknown column 'msProduct.special' in 'where clause'. Во все нужные файлы новые поля прописал, в БД их добавил. Подобных тем поиском не нашел. Код привожу ниже.
msproductdata.inc.php
<?php
return array(
'fields' => array (
'special' => 0,
'import_pid' => NULL
),
'fieldMeta' => array (
'special' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'phptype' => 'boolean',
'null' => true,
'default' => 0,
),
'import_pid' =>
array (
'dbtype' => 'varchar',
'precision' => '255',
'phptype' => 'string',
'null' => false,
'default' => "",
)
),
'indexes' => array(
'special' =>
array (
'alias' => 'special',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'special' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'import_pid' =>
array (
'alias' => 'import_pid',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'import_pid' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
)
)
);
Добавление поля import_pid в следующий файл думаю не обязательно (т.к. вывод в админке не нужен), но всё же добавил. Правильно я думаю на счёт «обязательности» или нет?
msproductdata.js
miniShop2.plugin.pluginname = { //pluginname не изменяем.
getFields: function(config) {
return {
special: {
xtype: 'xcheckbox',
decimalPrecision: 0,
description: '<b>[[+special]]</b><br />' + _('ms2_product_special_help')
},
import_pid: {
xtype: 'textfield',
description: '<b>[[+import_pid]]</b><br />' + _('ms2_product_import_pid_help')
}
}
}
,getColumns: function() {
return {
special: {width:50, sortable:true, editor: {xtype: 'combo-boolean', renderer: 'boolean'}},
import_pid: {width:50, sortable:true}
}
}
};
Единственная мысль которая осталась, дак это дописать новые поля в схему, но разумеется это бред.
Видимо при запуске моего php-скрипта не подключается плагин который расширяет модель товара. Пробовал проинициализировать minishop в скрипте, но не помогло. Подскажите, пожалуйста, в какую сторону копать дальше?
Добавлено позже: хотя при выводе товара расширенные поля в нём есть.
Комментарии: 1
Всё, пора на пенсию… Нужно было вместо
$msProduct = $modx->getObject('msProduct', ['import_pid' => 1]);
написать$msProduct = $modx->getObject('msProductData', ['import_pid' => 1]);
.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.