在SilverStripe中,当我map在a中使用时,我想返回两个字段DropdownField.
我有一个Teacher带字段firstname和数据的数据对象lastname.所以在我DropdownField想要合并这两个字段并将它们传递给我map().
我当前的代码如下所示:
public function getCMSfields() {
$fields = FieldList::create(TabSet::create('Root'));
$fields->addFieldsToTab('Root.Main', array(
DropdownField::create('TeacherID', 'Teacher')->setSource(Teacher::get()->map('ID', 'Firstname'))->setEmptyString('Select one')
);
// etc...
return $fields;
}
Run Code Online (Sandbox Code Playgroud)
如何合并firstname并将lastname其传递到内部map()并将其返回给DropdownField.
3dg*_*goo 10
我们可以在自定义中创建get函数,DataObject以返回我们喜欢的任何内容.这些get函数可以在很多地方使用,包括map函数.
以下是如何添加getFullName函数以返回FullName对象中的字符串:
class Teacher extends DataObject {
// ...
public function getFullName() {
return $this->FirstName . ' ' . $this->LastName;
}
}
Run Code Online (Sandbox Code Playgroud)
然后在我们中DropdownField我们可以Teacher::get()->map('ID', 'FullName')像这样取:
public function getCMSFields() {
$fields = parent::getCMSFields();
$fields->addFieldsToTab('Root.Main', array(
DropdownField::create('TeacherID', 'Teacher')
->setSource(Teacher::get()->map('ID', 'FullName'))
->setEmptyString('Select a teacher')
);
return $fields;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
488 次 |
| 最近记录: |