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 %>
]
}
我认为它只显示其中一个优惠和新闻文章,但我无法继续下去。任何建议都非常感谢。
答案 0 :(得分:2)
这看起来并不正确 - 意思是:你看过这样的事情了吗?
$data = DataObject::get(...);
$formatter = new JSONDataFormatter();
return $formatter->convertDataObjectSet($data);
结合DataObjectSets的正确处理,这应该是一种更好的方法。 除非你有非常具体的理由要求不同的东西 - 请说明一下