在SilverStripe 3.1中我试图获取我的Hello Bar选择器的值,以便网站范围内的页面可以访问。 p>
我创建了下拉字段以选择 Page.php strong> p>
<强>含/ HelloBar.ss 强> p>
HomePage.php strong> p>
我在使用 HomePage.php code>上的内容,因此我在引用主页上的字段值时没有任何问题。 下拉列表的值将通知if块运行以及填充hello栏的内容。 p>
..//
公共函数HelloBarSelector(){
$ Selector = HomePage :: get() - &gt; HelloBarSelect;
返回$ Selector;
}
公共函数ShowHelloBar ($ itemID = 1){
$ HelloBars = HelloBar :: get() - &gt; byID($ itemID);
$ HelloBars = $ HelloBars-&gt; HelloBarText;
返回$ HelloBars;
}
..//
代码> PRE>
<代码>&LT ;%if if $ HelloBarSelector%&gt;
&lt; section class =“hello”&gt;
&lt; p class =“hello__text”&gt; $ ShowHelloBar($ HelloBarSelector)&lt; / p&gt;
&lt; / section&gt;
&lt; ;%end_if%&gt;
code> pre>
../ /
公共函数getCMSFields(){
$ fields = parent :: getCMSFields();
$ fields-&gt; addFieldToTab('Root.HelloBar',GridField :: create(
'HelloBars',
'Hello Bar Text',
$ this-&gt; H. elloBars(),
GridFieldConfig_RecordEditor :: create()
));
$ fields-&gt; addFieldToTab('Root.HelloBar',DropdownField :: create(
'HelloBarSelect',
'选择你的Hello Bar (这将是整个网站)',
HelloBar :: get() - &gt; map('ID','HelloBarText')
)
- &gt; setEmptyString('(none)'));
返回 $ fields;
}
..//
code> pre>
$ HelloBarSelect code>访问该值时没有任何问题 主页和所有工作按预期。 似乎问题是使用我的函数访问
$ HelloBarSelect code>。 p>
div>