SilverStripe 3 布尔只读字段

SilverStripe 3 Boolean read only field

我们如何在 getCMSFields() 中将 Boolean 变量显示为只读字段,显示布尔 ->Nice() 函数的值(是/否)?

这是我尝试过的:

class EventMember extends Member {

    static $db = array (
        'NewsLetter' => 'Boolean'
    );

    public function getCMSFields() {
        $fields = parent::getCMSFields();


        //WHAT I TRIED

        //$fields->fieldByName('NewsLetter')->performReadonlyTransformation();
        /*$newsletter = new ReadonlyField('NewsLetter', 'NewsLetter');
        $value = $newsletter->getValue();
        $newsletter->setValue($value)->Nice();
        $fields->replaceField('NewsLetter', $newsletter);*/

        //$fields->addFieldToTab('Root.Main',  $nL = CheckboxField::create('NewsLetter', 'Newsletter'));
        //$value = $this->NewsLetter->Value()->Nice();
        //$nL->setValue($value)->Nice();


        $this->extend('updateCMSFields', $fields);
        return $fields;
    }

}
$fields->removeByName('NewsLetter');
$nL = DBField::create_field('ReadonlyField', $this->obj('NewsLetter')->Nice(), 'Newsletter');
$fields->addFieldToTab('Root.Main',  $nL);