如何访问购物世界元素的系统商店?

时间:2018-04-23 13:45:57

标签: javascript php extjs4.1 shopware

我正在尝试向自定义购物世界元素添加带有类别选择的下拉列表,我尝试根据this示例创建插件。我添加了一个新的组合框字段

$vimeoElement->createComboBoxField([
    'name' => 'cat',
    'fieldLabel' => 'Category',
    'supportText' => 'Select category',
    'allowBlank' => false,
    'store' => 'Shopware.apps.Base.store.Category'
]);

它出现在购物元素表单中,但是当我点击它时,会出现JavaScript错误:

  

"Cannot read property 'type' of undefined"

在准备组合框模板时发生。我无法确定究竟是什么导致了这个错误,因此我尝试使用JavaScript创建自己的字段,但我也无法通过JavaScript获取商店中的类别列表。

Ext.create('Ext.form.field.ComboBox', {
    xtype:'combobox',
    fieldLabel: 'Select Category',
    store: Shopware.apps.Base.store.Category,
    name: 'category'
});

这失败了:

  

"Cannot read property 'getProxy' of undefined".

尝试使用.getRange()直接从商店获取商品或使用.load()加载商品不起作用 - 对象中没有此类方法。

我是否想要访问错误的商店?还有一个Shopware.store.Category,但它似乎是指向同一个对象的链接,并且不起作用。

1 个答案:

答案 0 :(得分:1)

您可以将此示例用于类别选择

$ekElement->createComboBoxField([
  'name' => 'heroChangerCategory',
  'fieldLabel' => 'KategorieLink',
  'supportText' => 'Kategorie auf die verlinkt werden soll',
  'xtype' => 'emotion-components-fields-category-selection'
]);

或者按照您的方式,您必须定义displayField和valueField

的值
$ekElement->createComboBoxField([
  'name' => 'cat',
  'fieldLabel' => 'Category',
  'supportText' => 'Select category',
  'displayField' => 'name',
  'valueField' => 'id',
  'allowBlank' => false,
  'store' => 'Shopware.apps.Base.store.Category'
]);