Йесод получает доступ к постоянному идентификатору объекта из деревни

В настоящее время у меня есть постоянное извлечение списка продуктов из базы данных и отображение их на экране. Я хотел бы использовать идентификатор из базы данных, чтобы хранить некоторую информацию об этих продуктах в файле cookie и ссылаться на страницы с более подробной информацией. Насколько я понимаю, идентификатор присутствует только в постоянном объекте, а не в фактическом типе продукта? Означает ли это, что я должен хранить дополнительное поле со случайной строкой, которую я могу использовать в файле cookie, или есть способ получить доступ к идентификатору, используемому в базе данных? Я буду добавлять файлы cookie с помощью JavaScript.

До сих пор я просто использовал PHP, и для этого я бы использовал идентификатор. Я не уверен, что это то же самое в Yesod из-за безопасности типов или есть лучший способ сделать это.


person Stewart Webb    schedule 01.11.2015    source источник


Ответы (1)


Если вы хотите получить идентификатор объекта записи внутри обработчика, сделайте что-то вроде:

(Entity key _) <- runDB $ getBy ...

запрос, который не использует идентификатор для получения значений (например, get), вернет сущность, содержащую как идентификатор, так и значения.

См.: http://www.yesodweb.com/book/persistent#persistent_fetching_by_unique_constraint.

вы можете видеть, что getBy возвращает (Entity personId person), завернутый в, возможно, это также работает с selectList

person user2936306    schedule 02.11.2015