我正在尝试使用以下命令访问我的widget类中的siteconfig值:
<?php
class FacebookFeedWidget extends Widget{
static $title = "";
static $cmsTitle = "Facebook Feed Widget";
static $description = "This widget shows the Facebook feed";
static $doSiteConfig = DataObject::get_one('SiteConfig');
static $db = array(
"FacebookURL" => "Text"
);
static $defaults = array(
"FacebookURL" => $doSiteConfig->FacebookURL
);
function getCMSFields(){
return new FieldList(
new TextField("FacebookURL", "Facebook URL")
);
}
function getFacebookURL(){
$output = new ArrayList();
$output->push(
new ArrayData(
array(
"FacebookURL" => $this->FacebookURL
)
)
);
return $output;
}
}
但是收到错误: 解析错误:第8行的/....../widgets_facebookFeed/FacebookFeedWidget.php中的语法错误,意外'(',期待','或';'
我在这里做错了什么?
答案 0 :(得分:4)
你做不到这样的事情:
static $defaults = array(
"FacebookURL" => $doSiteConfig->FacebookURL
);
但幸运的是有一个函数polulateDefaults,它接受$ defaults并将它设置为对象,所以我们可以加入:
public function populateDefaults() {
parent::populateDefaults();
$this->FacebookURL = SiteConfig::current_site_config()->FacebookURL;
}