Varien_Data_Form_Element_Int Не найден в Magento

#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 .

Это может сработать.