我很想能够指定类似这样的内容:
-- [params]
-- groups.id :group_id
以获得一个下拉列表参数输入。我在这里将值命名为 group_id,因为我假设这样的下拉列表会给我这个值。
我很想能够指定类似这样的内容:
-- [params]
-- groups.id :group_id
以获得一个下拉列表参数输入。我在这里将值命名为 group_id,因为我假设这样的下拉列表会给我这个值。
我也认为这会非常有用。
类似于现有的 user_id 可选参数,但用于群组。如果能接受多个值就更好了。 ![]()
等等,什么?
你能指出在哪里说明了如何使用它吗?
您可以使用类似以下的方法:
-- [params]
-- user_id :user
SELECT *
FROM posts
WHERE user_id =:user
LIMIT 5
然后它会弹出一个下拉菜单,您可以在其中自动完成用户。 ![]()
不过,我刚注意到,您第一次运行时会出错,并且不会弹出参数框,但刷新页面后会弹出。我会找人检查一下。 ![]()
询问(并等待)你就会得到……我们刚刚在此 PR 中添加了对 :group_list 参数的支持。
以下是该功能使用示例:
-- [params]
-- group_list :groups
SELECT g.id,g.name
FROM groups g
WHERE g.name IN (:groups)
ORDER BY g.name ASC
这应该会在 UI 中为你提供以下内容:
太棒了。
我已经迫不及待想开始实施了。 ![]()
我的主题在我回复之前就被关闭了……
有没有办法将新的 -- group_list 参数类型限制为单个组?我已将其替换到我们现有的报告中,但它们都编写为期望一个单一的组名,并且在测试中我发现自己经常弄错。
我已经重新打开并滑过了。 ![]()
不过我不确定你的意思?你能举个例子说明一下问题所在吗?
哦。这很有趣。我一直在更多地使用它,例如:
WHERE g.name IN (:groups)
WHERE g.id IN (:groups)
不过,这仍然允许您意外地放入多个,尽管您会避免错误。![]()
我宁愿出现错误,也不愿从列表中随机选择 ![]()
说实话,我刚检查了一下,我觉得我一定是梦到过使用它来处理 group_ids,因为它根本不喜欢那样。我将从记录中删除这一点。
我不知道我从哪里得到这个想法的。我发誓我前几天用过它。![]()
顺便说一句,我完全忘了说:
这太棒了!!!
谢谢!!! ![]()
不,没有办法将其限制为单个组。据我所知。
group_list 中的参数如果选择了多个项目,则为数组,如果只选择了一个项目,则为字符串。
所以当只有一个项目时,你可以这样做:
-- [params]
-- group_list :groups
SELECT g.id,g.name
FROM groups g
WHERE g.name = :groups
ORDER BY g.name ASC
但由于它是一个数组,下面的方法对单个项目和多个项目都有效:
-- [params]
-- group_list :groups
SELECT g.id,g.name
FROM groups g
WHERE g.name IN (:groups)
ORDER BY g.name ASC
但是没有办法告诉 UI“只接受 1 个项目作为选择”。
@saradev 的文档在此 Utilizing Parameters in Data Explorer Queries 中重点介绍了数据探索器参数的完整列表,这些参数有时有下拉菜单,有时则没有。(GitHub 上的参数列表)
下面是参数表,也指出了是否有特定的控件。
| 参数 | 是否提供下拉菜单 |
|---|---|
| int | |
| bigint | |
| boolean | |
| null boolean | |
| string | |
| date | |
| time | |
| datetime | |
| double | |
| user_id | |
| post_id | |
| topic_id | |
| string_list | |
| category_id | |
| group_id | |
| int_list | |
| string_list | |
| user_list | |
| group_list |
理想情况下,数据探索器中使用和显示的下拉菜单应与核心应用程序具有相似的外观和感觉。让我们一起研究如何实现这一点。
我们最近重新设计了整个参数输入框。大多数类型都有自己的下拉框,并支持带有语义化错误提示的验证。![]()
这是最新的参数表,指示它是否有特定的控件。
| 参数 | 是否有下拉框 |
|---|---|
| int | |
| bigint | |
| boolean | |
| null boolean | |
| string | |
| date | |
| time | |
| datetime | |
| double | |
| user_id | |
| post_id | |
| topic_id | |
| category_id | |
| group_id | |
| int_list | |
| string_list | |
| user_list | |
| group_list |
@ganncamp 你可能想知道这个变化 ![]()
你能解释一下这些下拉菜单是如何工作的么?我试了很久一直没能做出一个可以定义字符串列表的下拉菜单。
@jordan-violet 迟复为歉,但 @SaraDev 在此撰写了关于可用参数的文章,并且 Linca 已更新了原始帖子: