Templates 银条模板
SilverStripe 2.4.7 嗨 我正在尝试组合一个模板来构造我的JSON。我的类有如下关系 一家商店可以有很多优惠和新闻文章。优惠和新闻文章可以属于许多商店 我的模板看起来像这样Templates 银条模板,templates,silverstripe,Templates,Silverstripe,SilverStripe 2.4.7 嗨 我正在尝试组合一个模板来构造我的JSON。我的类有如下关系 一家商店可以有很多优惠和新闻文章。优惠和新闻文章可以属于许多商店 我的模板看起来像这样 { "StoresHolder" : [ <% control Children %> { "ID" : "$ID", "Name" : "$Name", "Address1" : "$Address1", "Address2" : "$Address2",
{
"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 %>
]
}
{
“店主”:[
{
“ID”:“$ID”,
“名称”:“$Name”,
“地址1”:“$Address1”,
“地址2”:“$Address2”,
“县”:“$县”,
“新闻”:[
{
“ID”:“$ID”,
“标题”:“$Title”,
“DatePublished”:“$DatePublished”,
“ExpiryDate”:“$ExpiryDate”,
“Body”:“$Body”,
“URL”:“$URL”,
“照片”:“$Photo.Filename”
},
],
“提议”:[
{
“ID”:“$ID”,
“标题”:“$Title”,
“说明”:“$Description”,
“重量”:“$Weight”,
“价格”:“$Price”,
“储蓄”:“$Savings”,
“过期”:“$Expires”,
“照片”:“$Photo.Filename”
},
]
} ,
]
}
我让它工作到只显示其中一个报价和新闻文章的地步,但我无法得到更多。非常感谢您的任何建议。这看起来不太正确——从某种意义上说:您有没有看过这样的东西:
$data = DataObject::get(...);
$formatter = new JSONDataFormatter();
return $formatter->convertDataObjectSet($data);
再加上正确处理,这应该是一个更好的方法。
除非您有非常具体的原因需要一些不同的东西-然后请陈述它们我完全同意xeraa的观点,您不应该在Template中构建json如果出于某种原因您不能使用DataObjectsSets和格式化程序,您还可以构建数组并使用$json=convert::array2json($array)将它们转换为json;谢谢你的快速回复。所以我应该完全放弃模板,采用这种方法?我认为这应该位于控制器中,对吗?没错,你不需要模板:)好的,谢谢你的帮助。我会试试看,看看效果如何。您所说的“正确处理DataObjectSet”是什么意思?