由於從Silverstripe 3.0升級到3.1,使用模板呈現DataObject不再有效。在分機內的DataObject上調用renderWith()
我擴展了ModelAdmin以在其編輯表格內顯示一些相當複雜的標記(某些數據表)。
SSViewer::set_theme('mytheme');
Requirements::clear();
$form->Fields()->insertAfter(
new HtmlEditorField_Readonly(
'Title',
'',
//render DataObject with template inside the form
$analytics->renderWith('MyTpl')
),
'SomeField'
);
Requirements::restore();
,完美的工作在升級之前,現在失敗:
[用戶警告]這些模板都不能在主題 'mytheme的' 發現:MyTpl.ss
(雖然存在模板文件)
在此上下文中使用模板呈現DataObject有什麼問題嗎?
關於爲什麼不起作用或如何解決它的任何想法?
什麼是MyTpl.as的目錄路徑?您是否嘗試過在您收到警告的頁面上調用?flush = all? – 3dgoo
它在一個名爲'templates/order'的子文件夾中(這在3.0中不是問題)。但我也試過'/ templates''/ templates/Includes'和'templates/Layout'(分別使用flush = all) –
是模板在主題還是在mysite/module文件夾中。如果在主題中,是否啓用了正確的主題?在mysite /模板下移動它可能會有所幫助。另外,請查看?showtemplate以查看哪些模板可用。 – colymba