1
Boolean
変数は、->Nice()
関数の値(Yes/No)を示す読み取り専用フィールドとしてgetCMSFields()
に表示するにはどうすればよいですか?ここで SilverStripe 3ブール型読み取り専用フィールド
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;
}
}
は読み取り専用のFieldList内のすべてのフィールドを作成するには:$フィールド= $ fields-> makeReadonly(); –
ReadOnlyFieldにはまだ値が含まれていますか?私は2つのフィールドを試してみよう:HiddenFieldは値を保持するために(0または1)DBに再度保存するため、LiteralFieldまたはReadOnlyFieldはフォームにniceの/ noの値を表示する。あるいは、yes/noを含む読み取り専用のドロップダウンが機能します。この方法でブール値を保存し、素敵なバージョンを表示することができます。 – wmk
この場合、EventMembersにはバックエンドへのアクセス権がありません。 EventMembersには、自分のプロフィールを編集するためのFrontend上に別のFormがあります。バックエンドでは、AdminsはEventMembersを編集できます。 if(!Permission :: check( 'ADMIN'))... content-authorsはEventMemberを編集できません –