我正在扩展具有以下summary_fields(显示在CMS的"安全性"部分中)的Member对象.
private static $summary_fields = array(
'FirstName' => 'First Name',
'Surname' => 'Last Name',
'Email' => 'Email',
);
Run Code Online (Sandbox Code Playgroud)
如何删除'FirstName'和'Surname'并将其替换为数据扩展名中的自定义字段:'Full Name'?
如何将"电子邮件"更改为"电子邮件地址"?
我知道如何通过数据扩展添加summary_fields,但我不知道如何删除或更改它们.
如果a DataObject已设置a,$summary_fields我们无法通过扩展名从中删除字段.扩展名$summary_fields与原始版本合并$summary_fields.
要停止合并,$summary_fields我们需要覆盖DataObject的updateSummaryFields()功能.相反,我们将使updateSummaryFields()函数返回扩展名$summary_fields.
class MemberExtension extends DataExtension {
private static $summary_fields = array(
'FullName' => 'Full Name',
'EmailAddress' => 'Email Address'
);
private static $casting = array(
'FullName' => 'Text',
'EmailAddress' => 'Text'
);
public function updateSummaryFields(&$fields) {
$fields = Config::inst()->get($this->class, 'summary_fields');
}
public function getFullName() {
return $this->owner->FirstName . ' ' . $this->owner->Surname;
}
public function getEmailAddress() {
return $this->owner->Email;
}
}
Run Code Online (Sandbox Code Playgroud)
我们似乎也无法改变现有字段的字段标签Email.我们可以做的是投下一个EmailAddress将返回内容的新字段Email.现在我们可以设置我们想要的标签.
| 归档时间: |
|
| 查看次数: |
1538 次 |
| 最近记录: |