Content management system Silverstripe 3.1:添加链接到CMS中的has_one

Content management system Silverstripe 3.1:添加链接到CMS中的has_one,content-management-system,silverstripe,Content Management System,Silverstripe,当使用has\u many或many\u many时,在Silverstripe中很容易从一个数据对象导航到另一个数据对象。但是现在我想为has_one’s提供相同的功能:在CMS中添加指向所选数据对象的链接。在这种情况下,CMS中的has_one格式如下: 标题-带值的下拉列表-可单击指向选定对象的链接 有办法做到这一点吗?我不介意面包屑路径中断,或者为了显示链接,您必须先保存面包屑路径 这里有两种方法: 我假设你对has\u many或many\u many列表使用一个GridField?如

当使用has\u many或many\u many时,在Silverstripe中很容易从一个数据对象导航到另一个数据对象。但是现在我想为has_one’s提供相同的功能:在CMS中添加指向所选数据对象的链接。在这种情况下,CMS中的has_one格式如下: 标题-带值的下拉列表-可单击指向选定对象的链接


有办法做到这一点吗?我不介意面包屑路径中断,或者为了显示链接,您必须先保存面包屑路径

这里有两种方法:

我假设你对has\u many或many\u many列表使用一个GridField?如果要使用相同的方法,请创建一个临时列表,其中只包含has_one记录,并将其用作GridField的源。使用GridFieldConfig_Base或GridFieldConfig_RecordEditor作为配置,以便添加或删除新记录。在has_one记录的$summary_fields数组中添加链接,使其显示在GridField中

第二种也是更简单的方法是在有记录的地方添加一个LiteralField,其中一个记录字段用于输出到该记录的链接


你觉得怎么样?

你的第二个解决方案听起来很完美。但我的印象是,你不能把一个文学领域放在另一个领域后面?不能放在后面,就在后面。使用$fields->insertAfter$literalField,有一个标题;这意味着它会出现在下一行,或者有办法改变它吗?我知道这不是一个简单的方法,除非你扩展你正在使用的任何字段,并创建一个新的模板文件,用于输出字段及其旁边的链接。我想你会的。这是最简单的方法。