SilverStripe模板

时间:2012-10-09 16:11:30

标签: templates silverstripe

SilverStripe 2.4.7

您好

我正在尝试整理一个模板来构建我的JSON。我的班级有如下关系。

商店可以有很多优惠和许多新闻文章。优惠和新闻文章可以属于许多商店。

我的模板看起来像这样

{
"StoresHolder" : [
<% control Children %>
{
    "ID" : "$ID",
    "Name" : "$Name",
    "Address1" : "$Address1",
    "Address2" : "$Address2",
    "County" : "$County",
        "News"  : [
            <% control News %>
            {
            "ID" : "$ID",
            "Title" : "$Title",
            "DatePublished" : "$DatePublished",
            "ExpiryDate" : "$ExpiryDate",
            "Body" : "$Body",
            "URL" : "$URL",
            "Photo" : "$Photo.Filename"
            }<% if Middle %>,<% end_if %>
            <% end_control %>
        ],
        "Offers" : [
            <% control Offers %>
            {
            "ID" : "$ID",
            "Title" : "$Title",
            "Description" : "$Description",
            "Weight" : "$Weight",
            "Price" : "$Price",
            "Savings" : "$Savings",
            "Expires" : "$Expires",
            "Photo" : "$Photo.Filename"
            }<% if Middle %>,<% end_if %>
            <% end_control %>
        ]
}<% if Last %> <% else %>,<% end_if %>
<% end_control %>
]
}

我认为它只显示其中一个优惠和新闻文章,但我无法继续下去。任何建议都非常感谢。

1 个答案:

答案 0 :(得分:2)

这看起来并不正确 - 意思是:你看过这样的事情了吗?

$data = DataObject::get(...); 
$formatter = new JSONDataFormatter(); 
return $formatter->convertDataObjectSet($data);

结合DataObjectSets的正确处理,这应该是一种更好的方法。 除非你有非常具体的理由要求不同的东西 - 请说明一下