如何使用 Yesod 的 Persistent 创建带有子数组的 MongoDB 文档?

发布于 2024-11-26 03:07:53 字数 324 浏览 2 评论 0原文

我正在尝试创建一个持久类型,其建模类似于:

MyModel
    something Text
    somethingElse [Int]

我收到一个错误:

非法类型构造函数或类名:“[Int]” 拼接TH声明时: 数据我的模型 = MyModel {myModelSomething :: 文本,myModelSomethingElse :: [整数]} 推导(显示、读取、等式)

如有任何帮助,我们将不胜感激。

I am attempting to create a Persistent type that is modeled something like:

MyModel
    something Text
    somethingElse [Int]

and I get an error:

Illegal type constructor or class name: `[Int]'
When splicing a TH declaration:
data MyModel
= MyModel {myModelSomething :: Text, myModelSomethingElse ::
[Int]}
deriving (Show, Read, Eq)

Any help is appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

很酷不放纵 2024-12-03 03:07:53

这只是持久语法的限制。要解决这个问题,请在 Haskell 代码中定义一个类型同义词(在 mkPersist 调用之前),例如:

type Ints = [Int]

然后在声明中将 [Int] 替换为 Ints ,它应该可以工作。

This is just a limitation of the Persistent syntax. To get around it, define a type synonym in your Haskell code (before the mkPersist call) like:

type Ints = [Int]

Then replace [Int] with Ints in your declaration, it should work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文