Я использую magento V1.5.Я работаю с клиентом EAV и попытался создать еще один модуль EAV.
Я добавил несколько атрибутов в объекте клиента.Теперь мое требование заключается в том, что эти атрибуты должны редактироваться как из внешнего, так и из внутреннего интерфейса.
Скажите, пожалуйста, как добавить эти атрибуты в форму forntend (форма редактирования клиента).& Подскажите, что нужно делать в бэкэнде, чтобы эти опции были редактируемыми.Я думаю, если есть способ администрирования, как в нашем Form.php, мы готовим форму с добавлением элементов к ней.тогда нам не нужно писать код для создания фактического HTML.Magento автоматически делает это.Так что идея в том, что он также должен загружать новые атрибуты, которые были только что добавлены.(как они появляются в редакторе продукта.)
Второй вопрос, Можете ли вы, ребята, сказать мне, что я должен написать в моей Grid.php >> prepareCollection (для другого модуля EAV).так что он должен получить все атрибуты с их значениями (или может быть немного)
вот что у меня есть в моем Grid.php, но оно не работает
protected function _prepareCollection()
{
$collection = Mage::getModel('pincodes/eavpincodes')->getCollection();
$this->setCollection($collection);
return parent::_prepareCollection();
}
и этофайл моей коллекции
class Namespace_Pincodes_Model_Resource_Eav_Mysql4_Eavpincodes_Collection extends Mage_Eav_Model_Entity_Collection_Abstract
{
protected function _construct()
{
$this->_init('pincodes/eavpincodes');
}
}
Но в моей сетке ничего не возвращается
и вот мой файл коллекции атрибутов
class Inkfruit_Pincodes_Model_Resource_Eav_Mysql4_Attribute_Collection extends Mage_Eav_Model_Mysql4_Entity_Attribute_Collection
{
public function _construct()
{
$this->_init('pincodes/resource_eav_attribute', 'eav/entity_attribute');
}
protected function _initSelect()
{
$this->getSelect()->from(array('main_table' => $this->getResource()->getMainTable()))
->where('main_table.entity_type_id=?', Mage::getModel('eav/entity')->setType('pincodes_eavpincodes')->getTypeId())
->join(
array('additional_table' => $this->getTable('pincodes/eavpincodes')),
'additional_table.attribute_set_id=main_table.attribute_id' // I think this sql need to be changed but I have no idea what it'll be
);
return $this;
}
}
РебятаСпасибо огромное.Этот форум был особенно полезен для меня1030 * Но когда я нажимаю URL для этого модуля, я не вижу ошибки, но эти атрибуты отсутствуют в моей базе данных.
Я также создал файл Entity_Setup, и он выглядит следующим образом. Я думаю, что он неправильный, но я попробовал
<?php
class Namespace_Customer_Entity_Setup extends Mage_Eav_Model_Entity_Setup
{
public function getDefaultEntities()
{
return array (
'customer' => array(
'entity_model' => 'customer/customer',
'attribute_model' => 'customer/attribute',
'table' => 'customer/entity',
'attributes' => array(
'profile_image' => array(
//the EAV attribute type, NOT a mysql varchar
'type' => 'varchar',
'backend' => '',
'frontend' => '',
'label' => 'Profile Image',
'input' => 'file',
'class' => '',
'source' => '',
// store scope == 0
// global scope == 1
// website scope == 2
'global' => 0,
'visible' => true,
'required' => false,
'user_defined' => true,
'default' => '',
'searchable' => true,
'filterable' => true,
'comparable' => false,
'visible_on_front' => false,
'unique' => false
),
'mobile' => array(
'type' => 'varchar',
'backend' => '',
'frontend' => '',
'label' => 'Mobile Number',
'input' => 'text',
'class' => '',
'source' => '',
'global' => 0,
'visible' => true,
'required' => true,
'user_defined' => true,
'default' => '',
'searchable' => true,
'filterable' => true,
'comparable' => false,
'visible_on_front' => false,
'unique' => false
),
),
)
);
}
}
Но я ничего не вижу, никаких новых атрибутов в базе данных.
Можете ли вы, ребята, помочь здесь, что случилось?Спасибо