如何让 FieldFilterable 中FieldFilterOptions的数据从sql 中获取?

info.AddField("Node Type", "name", db.Varchar).FieldJoin(types.Join{
		Field: "node_type",
		JoinField: "id",
		Table: "node_type",
	}).FieldFilterable(types.FilterType{FormType: form.SelectSingle}).FieldFilterOptions(types.FieldOptions{
		{Value: "0", Text: "A"},
		{Value: "1", Text: "B"},
		{Value: "2", Text: "C"},
		{Value: "3", Text: "D"},
		{Value: "4", Text: "E"},
	})

如何让

{Value: “0”, Text: “A”},
{Value: “1”, Text: “B”},
{Value: “2”, Text: “C”},
{Value: “3”, Text: “D”},
{Value: “4”, Text: “E”},

从数据库中获取?

1 Like

@Surou 如果是在显示的时候只获取一次的话,可以拿到数据库连接对象,然后在数据模型文件中获取即可。这里是如何获取数据库连接对象的文档。如果是要动态获取,即输入搜索一次就获取一次,需要用到FieldOnSearch之类的函数,这里有文档

看到FormPanel 有 FieldOptionsFromTable,看InfoPanel没有,想问下 有没有其他的方式类似获取,或者可不可以加上同样的方法

应该是可以的,我研究一下。

:grinning: 想问问 预计多久能好,哈哈,有点着急,需要测试的话我随时配合

@Surou 你指的是连表显示?还是指筛选的表单那里?如果是表格里面连表显示一些字段,目前是有API的。如果是筛选表单那里要增加的连表的字段,可以在这个连表获取的字段后面加上FieldFilterable()

现在的代码是

info.AddField(“节点类型”, “name”, db.Varchar).FieldJoin(types.Join{
Field: “node_type”,
JoinField: “id”,
Table: “node_type”,
}).FieldFilterable(types.FilterType{FormType: form.SelectSingle}).FieldFilterOptions(types.FieldOptions{
{Value: “0”, Text: “BP”},
{Value: “1”, Text: “RPC”},
{Value: “2”, Text: “SYN”},
{Value: “3”, Text: “IBC”},
{Value: “4”, Text: “BIOS”},
})

想改成

info.AddField(“链类型”, “chain_type”, “name”, db.Varchar).
FieldOptionsFromTable(“chain_type”, “name”, “id”)

也就是
FieldFilterOptions(types.FieldOptions{
{Value: “0”, Text: “BP”},
{Value: “1”, Text: “RPC”},
{Value: “2”, Text: “SYN”},
{Value: “3”, Text: “IBC”},
{Value: “4”, Text: “BIOS”},
})

这部分数据想从 数据库获取

@Surou Ok. 我知道了,我今天看下,你加一下我(qq: 3175425480),我拉你进内测用户QQ群,提交了会在里面发通知。

坛主已更新支持FieldFilterOptionsFromTable,

举例如下
info.AddField(“链类别”, “name”, db.Varchar).FieldJoin(types.Join{
Field: “chain_sort”,
JoinField: “id”,
Table: “chain_sort”,
}).FieldFilterable(types.FilterType{FormType: form.SelectSingle}).
FieldFilterOptionsFromTable(“chain_sort”, “name”, “id”)

哈,刚好遇到同样的需求,谢谢啦。