1

現在、データベースから製品のリストを取得し、画面に表示しています。データベースの Id を使用して、これらの製品に関する情報を Cookie に保存し、より詳細な情報ページにリンクしたいと考えています。私が理解していることから、IDは永続エンティティにのみ存在し、実際の製品タイプには存在しませんか? これは、Cookie で使用できるランダムな文字列を含む追加のフィールドを保存する必要があるということですか、それともデータベースで使用される ID にアクセスする方法はありますか? JavaScript を使用して Cookie を追加します。

今まで私は PHP を使用していましたが、そのために ID を使用していました。これが Yesod でも型安全性のためなのか、それともこれを行うためのベスト プラクティスがあるのか​​はわかりません。

4

1 に答える 1

3

ハンドラー内のレコード エンティティの ID を取得する場合は、次のようにします。

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

ID を使用せずに値を取得するクエリ (例: get) は、ID と値の両方を含むエンティティを返します。

参照: http://www.yesodweb.com/book/persistent#persistent_fetching_by_unique_constraint

getBy が (Entity personId person) でラップされたものを返すことがわかります。おそらくこれは selectList でも機能します。

于 2015-11-02T10:40:02.913 に答える