Получение значения настраиваемого атрибута категории
Я создал новую вкладку на странице редактирования категории, которая предоставляет доступ к пользовательскому атрибуту категории с ключом mymodule_myattribute
. Я сделал это с помощью сценария установки:
$installer->addAttribute(
'catalog_category',
'mymodule_myattribute',
array(
'label' => 'My Attribute',
'group' => 'My Attribute Tab', //will be created if necessary
'type' => 'int',
'class' => 'validate-number',
'required' => false,
'input_renderer' => 'mymodule/adminhtml_catalog_category_widget_mycoolwidget',
)
);
Атрибут появляется на новой вкладке, и настройка сохраняется при нажатии Save Category
. Все это хорошо... однако...Я пытаюсь получить доступ к этому пользовательскому значению атрибута для каждой категории в отдельном скрипте:
require_once('app/Mage.php');
Mage::app('default');
$categories = Mage::getModel('catalog/category')->getCollection()
->addAttributeToSelect('*');
foreach ($categories as $category) {
$cat = Mage::getModel("catalog/category")->load($category->getId());
var_dump($cat->getData('mymodule_myattribute')); // NULL
var_dump($cat->getMymoduleMyattribute()); // NULL
var_dump($cat->getName()); // My Cool Category Name
}
Приведенные выше требования к пользовательским атрибутам возвращают нулевое значение даже хотя я знаю, что он сохраняется (потому что Magento сохраняет его для меня).
Есть ли что-то ослепительно очевидное, чего мне здесь не хватает?
2
1 answers
Я программно обновил свои индексы (спасибо Мариусу):
require_once('app/Mage.php');
Mage::app('default');
$categories = Mage::getModel('catalog/category')->getCollection()
->addAttributeToSelect('*');
foreach ($categories as $category) {
$process = Mage::getModel('index/process')->load(5); $process->reindexAll();
$process = Mage::getModel('index/process')->load(6); $process->reindexAll();
$cat = Mage::getModel("catalog/category")->load($category->getId());
var_dump($cat->getData('mymodule_myattribute')); // Gives result
var_dump($cat->getMymoduleMyattribute()); // Gives result
var_dump($cat->getName()); // My Cool Category Name
}
3
Author: beingalex, 2014-02-18 14:18:41