Haskell 如何向数据库添加唯一键。如何使用quasiquoter持久化模型?
如何使用persistLowerCase Quasiqueter构建具有两个或多个字段的唯一键 使用的指导为简单网站创建模型时,会出现以下错误:Haskell 如何向数据库添加唯一键。如何使用quasiquoter持久化模型?,haskell,yesod,esqueleto,Haskell,Yesod,Esqueleto,如何使用persistLowerCase Quasiqueter构建具有两个或多个字段的唯一键 使用的指导为简单网站创建模型时,会出现以下错误: Build FAILED $PREFIX/App/Models.hs: line 42, column 18: Not in scope: data constructor `GroupSlug' $PREFIX/App/Models.hs: line 43, column 19: Not in scope: data constructor
Build FAILED
$PREFIX/App/Models.hs: line 42, column 18:
Not in scope: data constructor `GroupSlug'
$PREFIX/App/Models.hs: line 43, column 19:
Not in scope: data constructor `GroupName'
App/Models.hs
{-LANGUAGE EmptyDataDecls-}
{LANGUAGE FlexibleContexts-}
{LANGUAGE FlexibleInstances-}
{-语言GADTs-}
{-语言重载字符串-}
{-语言拟语言-}
{-语言模板haskell-}
{-语言类型族-}
{-语言类型同义词实例-}
{-OPTIONS_GHC-fno警告孤儿-}
模块应用程序。模型在哪里
导入数据。文本
导入Database.Persist.TH
共享[mksqlsettings]
,mkMigrate migrateAll][小写|
邮递
组组ID
postName文本
后置段代码文本
经文
文本内容
内容与文本
单柱后柱
衍生节目
组
groupId Int
组名文本
组段塞文本
父组ID
唯一组groupId groupSlug
衍生节目
|]
App/Handlers.hs
{-语言重载字符串-}
模块App.Handlers在哪里
导入数据库.Esqueleto
导入应用程序模型
GroupQueryX=
挑选$
从$\g->do
在哪里。GroupSlug==。瓦尔x
返回$g^。组名
版本:
Haskell平台2013.2
阴谋集团==1.19.2
持久==1.3.0.2
== 0.6.2
== 1.3.4.5
我是否遗漏了一些扩展或忽略了其他内容?据我所知,您尝试使用的数据构造函数实际上被称为GroupSlug和GroupName,而不仅仅是GroupSlug和GroupName。这是因为数据类型是通过获取实体名称并将其与具有适当资本化的字段名称连接而生成的。尝试使用-ddump spaites命令行参数加载源文件,您应该可以在输出的某处看到它