multiSelectField在Yesod中具有预先选择的选项

时间:2013-12-14 21:52:04

标签: haskell yesod

我在两个实体之间有多对多的关系。例如,让我们考虑一个可以有多个作者的博客帖子。这可能是一个简单的模型:

share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistLowerCase|
Person
    name String
    age Int Maybe
    deriving Show
Blogpost
    title String
    deriving Show
PersonBlogpost
    person PersonId
    blogpost BlogpostId
|]

我的想法是为Blogpost实体创建一个“编辑”页面,并在其中为作者提供multiSelectField,并在当前作者的标签中“选择”。用户将能够修改作者并将其更改保存在数据库中。每当他再次进入同一博客文章的编辑页面时,他保存的选项必须在multiSelectField中显示为选中状态。

我目前正在使用这样的MForm:

(mAuthorsRes, mAuthorsView) <- mopt
                                 (multiSelectField authors)
                                 ""
                                 Nothing

authors只有Person表中的所有作者。我知道我必须替换相关代码的最后Nothing,但我不知道该怎么做。

提前致谢。

0 个答案:

没有答案