Имам връзка много към много между два обекта. Например, нека помислим за публикация в блог, която може да има няколко автора. Това може да е прост модел за него:
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
за съответния код, но не знам как да го направя.
Благодаря предварително.