我正在尝试向自定义购物世界元素添加带有类别选择的下拉列表,我尝试根据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
,但它似乎是指向同一个对象的链接,并且不起作用。
答案 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'
]);