我正在创建一个自定义插件,需要在后端区域列出一些内容。列表中的每个项目都可以选择打开一个详细信息窗口,在该窗口中我想显示一些信息以及一个 SELECT OPTION 字段,但不确定如何创建。该字段只是选择所需的选项并将其保存在数据库中。
是否可以在myplugin / Resources / views / backend / my_plugin / model / product.js文件中创建它?
我有这样的东西(样本):
Ext.define('Shopware.apps.MyPlugin.model.Product', {
extend: 'Shopware.data.Model',
configure: function() {
return {
controller: 'MyPlugin',
detail: 'Shopware.apps.MyPlugin.view.detail.Product'
};
},
fields: [
{ name : 'id', type: 'int', useNull: true },
{ name : 'Name', type: 'string' },
{ name : 'Lastname', type: 'string' },
{ name : 'Date', type: 'date' },
{ name : 'Color', type: 'SELECT?' }
]
});
当然,“颜色”字段不能识别那里的SELECT,但我想知道是否还有其他词吗?
我希望像这样创建一个新字段:
fields: [
...
{
name : 'Color',
type: 'SELECT?',
values: {'green', 'blue', 'red'}
}
]
如果我完全错了,请您指导我在哪里创建此字段?
谢谢。
答案 0 :(得分:0)
您正在定义模型,而不是插件,并且您似乎想将“ Color”配置为枚举?我说的对吗?
标准类型为:
Ext.data.field.Field //(Default, implies no conversion)
Ext.data.field.String
Ext.data.field.Integer
Ext.data.field.Number
Ext.data.field.Boolean
Ext.data.field.Date
(请参阅Field Types下的文档)
除非您要进行模型验证,否则您可以只使用字符串。
您可以创建从字符串或字段扩展的自定义类型,并使用自定义验证器。 (请参见Validation下的同一页)
示例:
Ext.define('App.field.Color', {
extend: 'Ext.data.field.Field',
alias: 'data.field.color',
// Match list of colors
validators: {
type: 'list',
list: ['green', 'blue', 'red']
}
});
Ext.define('App.model.Product', {
extend: 'Ext.data.Model',
fields: [
{ name : 'id', type: 'int', useNull: true },
{ name : 'Name', type: 'string' },
{ name : 'Lastname', type: 'string' },
{ name : 'Date', type: 'date' },
{ name : 'Color', type: 'color' }
]
});