2012-10-09 31 views
0

SilverStripe 2.4.7SilverStripe模板

我試圖把一個模板來構建我的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 %> 
] 
} 

我得到它的工作,它僅顯示信息和新聞文章的一個點,但我不能再得到任何。任何意見非常感謝。

回答

2

這看起來不正確的 - 在的感覺:你有沒有采取一看是這樣的:

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

DataObjectSets妥善處理相結合,這應該是一個更好的辦法。 除非你有非常具體的理由需要不同的東西 - 然後請說明他們

+0

我完全同意xeraa在這裏,你不應該建立在模板 – Zauberfisch

+1

json如果由於某些原因你不能使用DataObjectsSets和formater,你可以也建立數組並將它們轉換爲json與$ json = Convert :: array2json($ array); http://paste2.org/p/2318703 – Zauberfisch

+0

感謝您的快速回復。所以我應該完全放棄模板並採取這種方法?我是否認爲這應該位於控制器中? – MillyMonster