我遇到模板继承问题:
我有基本模板(比如 Parent ),其中包含以下字段:
从中派生的模板( Child )。
问题是,一旦我继承了 Parent ,并使用TDS生成了它的模型,我得到了:
php bin/magento cache:clean
但期望获得 Guid 课程。一旦我开始主题字段输入 Multilist ,我就得到了:
public virtual string Theme {get; set;}
其中有 Guid 类型......
如何告诉TDS(GlassMapper)使用 Guid 而不是 string ?
答案 0 :(得分:2)
您已经发现需要使用DropLink
字段类型(存储guiGUID)而不是DropList(只存储值)。
您可以让TDS CodeGen模板返回链接的项目类型,而不是返回GUID,然后在Sitecore中再次查找该项目,而不是通过在Custom Data
属性字段中设置对象类型
感兴趣2 main settings:
type
:对于单个链接的项目,例如DropLink。生成的代码将输出:
public virtual AssetLibrary.LookupValue MyFieldName { get; set; }
generic
:对于多个关联的项目,例如多列表字段
public virtual IEnumerable<AssetLibrary.LookupValue> MyFieldName { get; set; }
由于大多数时候您希望guid解析为特定类型,因此这会保存一些样板代码以查找链接的项目,并且Glass将自动解析为链接的项目。
答案 1 :(得分:0)
好的,最后,我在写这个问题时发现了我的错误...我使用错误的类型主题:
应使用 Droplink 而不是 Droplist 。