#php #magento
#php #magento
Вопрос:
Я создал атрибут Magento под названием sales_index. Я создал атрибут как целое число из сценария установки в созданном мной модуле. Это то, что я вставил в свой скрипт установки:
$installer = $this;
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
$installer->startSetup();
$setup->addAttribute('catalog_product', 'sales_index', array(
'input' => 'int',
'type' => 'int',
'backend' => '',
'visible' => 0,
'required' => 0,
'user_defined' => 1,
));
$installer->endSetup();
Атрибут, похоже, создан правильно, поскольку установщик не выдал никаких ошибок. Однако, когда я перемещаю атрибут sales_index в группу атрибутов продукта по умолчанию и загружаю один из продуктов в панели администратора, я получаю следующую ошибку:
Fatal error: Class 'Varien_Data_Form_Element_Int' not found in /var/www/vhosts/workingperson.com/magento/lib/Varien/Data/Form/Abstract.php on line 129
Итак, я решил, что могу просто убрать этот атрибут из группы атрибутов по умолчанию и все будет в порядке. Я все равно планирую установить это значение в фоновом режиме. Однако, когда я загружаю продукт, это значение не приходит вместе с ним. Значение устанавливается в базе данных, оно просто не загружается.
Я предполагаю, что я сделал что-то не так с созданием атрибута, который не сразу заметен для меня.
Кто-нибудь знает, что мне нужно сделать, чтобы заставить это работать правильно?
Ответ №1:
Попробуйте удалить 'input' => 'int'
строку из вашего установщика. Я не верю, что существует отдельный тип элемента формы для целых чисел, и ошибка относится к тому же самому.
Комментарии:
1. Или измените его на
'text'
, если вы хотите видеть текстовое поле на странице редактирования продукта.
Ответ №2:
Попробуйте изменить 'input' => 'int',
на 'input' => 'text',
. Если этот регистр уже есть в таблице, перейдите к eav_attribute
поиску вашей строки и измените поле frontend_input
на text
.
Это может сработать.