Расширение самой базовой модели Shopware вообще невозможно. В зависимости от того, какую конкретную модель вы пытаетесь расширить, есть два разных способа обхода проблемы:
Если вы хотите расширить саму статью, вы можете использовать поля настраиваемых атрибутов, как описано здесь: http://community.shopware.com/Anlegen,-Anpassen-und-Ausgabe-von-Artikel-Attributen_detail_1208
Другой способ - написать плагин, в котором вы создаете поля атрибутов с помощью кода в плагине install (). Это возможно только для сущностей, у которых есть таблица атрибутов, принадлежащая самой сущности. Например, s_order и s_order_attributes
Для второго способа создайте метод в Bootstrap.php вашего плагина, как показано ниже, и вызовите метод в методе плагина install ():
public function installOrderAttributes()
{
Shopware()->Models()->addAttribute(
's_order_attributes',
'ordermod',
'Random1',
'DECIMAL(12,4)',
false,
0.0000);
Shopware()->Models()->addAttribute(
's_order_attributes',
'ordermod',
'Random2',
'DECIMAL(12,4)',
false,
0.0000);
$metaDataCacheDoctrine = Shopware()->Models()->getConfiguration()->getMetadataCacheImpl();
$metaDataCacheDoctrine->deleteAll();
Shopware()->Models()->generateAttributeModels(array('s_order_attributes'));
}
Функция addAttribute () в /engine/Shopware/Components/Model/ModelManager.php имеет следующую сигнатуру:
/**
* Shopware helper function to extend an attribute table.
*
* @param string $table Full table name. Example: "s_user_attributes"
* @param string $prefix Column prefix. The prefix and column parameter will be the column name. Example: "swag".
* @param string $column The column name
* @param string $type Full type declaration. Example: "VARCHAR( 5 )" / "DECIMAL( 10, 2 )"
* @param bool $nullable Allow null property
* @param null $default Default value of the column
* @throws \InvalidArgumentException
*/
public function addAttribute($table, $prefix, $column, $type, $nullable = true, $default = null);
Надеюсь, это поможет.
С уважением!
person
barbieswimcrew
schedule
14.04.2016