如何在 Yesod 中获取相关字段(外键)?
How to get related fields (foreign key) in Yesod?
我在 Yesod 应用程序中定义了以下模型:
CvCategory
title Text
order Int
UniqueCvCategory title
CvItem
category CvCategoryId
title Text
fromYear Int
toYear Int Maybe
description Text Maybe
UniqueCvItem title
我在处理程序中有以下查询:
cvcategories <- selectList [] [] --all cv categories
在我的小村庄模板中,我想做类似的事情:
<ul>
$forall cvcategory <- cvcategories
<li>$#{cvCategoryTitle cvcategory}
$forall cvitem <- cvcategory --how?
<li>#{cvItemTitle cvitem}
在Django中,你可以很方便的定义一个related_name
,然后用这个轻松访问所有的'child objects'。这在 Yesod 也可能吗?怎么样?
更改您的查询,例如
do
cvcategories <- selectList [] [] --all cv categories
forM cvcategories $ \cat -> do -- for each category
cvitems <- selectList [CvCategoryId .== entityKey cat] -- all items belonging to it
return (cat, cvitems) -- return tuple of category and its items
然后你的哈姆雷特看起来像
<ul>
$forall (cvcategory, cvitems) <- cvcategories
<li>$#{cvCategoryTitle cvcategory}
$forall cvitem <- items
<li>#{cvItemTitle cvitem}
我在 Yesod 应用程序中定义了以下模型:
CvCategory
title Text
order Int
UniqueCvCategory title
CvItem
category CvCategoryId
title Text
fromYear Int
toYear Int Maybe
description Text Maybe
UniqueCvItem title
我在处理程序中有以下查询:
cvcategories <- selectList [] [] --all cv categories
在我的小村庄模板中,我想做类似的事情:
<ul>
$forall cvcategory <- cvcategories
<li>$#{cvCategoryTitle cvcategory}
$forall cvitem <- cvcategory --how?
<li>#{cvItemTitle cvitem}
在Django中,你可以很方便的定义一个related_name
,然后用这个轻松访问所有的'child objects'。这在 Yesod 也可能吗?怎么样?
更改您的查询,例如
do
cvcategories <- selectList [] [] --all cv categories
forM cvcategories $ \cat -> do -- for each category
cvitems <- selectList [CvCategoryId .== entityKey cat] -- all items belonging to it
return (cat, cvitems) -- return tuple of category and its items
然后你的哈姆雷特看起来像
<ul>
$forall (cvcategory, cvitems) <- cvcategories
<li>$#{cvCategoryTitle cvcategory}
$forall cvitem <- items
<li>#{cvItemTitle cvitem}