私が取り組んでいるプロジェクト用にいくつかのウィジェットを作成していますが、ウィジェットはウィジェットの外部から他のクラスにアクセスできないようです。画像クラスと SiteTree クラスの両方に has_one 静的を追加しようとしました (画像の例については、以下の例を参照してください)。cms フィールドを追加しようとすると、同じエラーが発生します: 致命的なエラー: メンバー関数 FormAction() の呼び出し/..../sapphire/forms/FormField.php の 139 行目の非オブジェクト
<?php
class AdBoxWidget extends Widget{
static $title = "";
static $cmsTitle = "Ad Box Widget";
static $description = "Ad Box widget. To add an image, Title and Link";
static $db = array(
"Title" => "Text",
"Link" => "Text",
"AdLinkText" => "Text"
);
static $defaults = array(
"Title" => 'Ad Title',
"Link" => 'http://',
"AdLinkText" => 'Click here for more info',
);
static $has_one = array(
'AdImage' => 'Image'
);
function getCMSFields(){
return new FieldList(
new TextField("Title", "Ad Title"),
new TextField("Link", "Ad Link"),
new TextField("AdLinkText", "Text for Link"),
new UploadField("AdImage", "Ad image")
);
}
function getAd(){
$output = new ArrayList();
$output->push(
new ArrayData(
array(
"Title" => $this->Title,
"Link" => $this->Link,
"AdLinkText" => $this->AdLinkText
)
)
);
return $output;
}
}