使用地图设置两个字段
Set two fields using map
在 SilverStripe 中,当我在 DropdownField
.
中使用 map
时,我想 return 两个字段
我有一个包含字段 firstname
和 lastname
的数据对象 Teacher
。所以在我的 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;
}
如何合并 firstname
和 lastname
并将其传递给 map()
和 return 到 DropdownField
.
我们可以在自定义 DataObject
中创建获取函数以 return 我们喜欢的任何内容。这些 get 函数可以用在很多地方,包括 map
函数。
以下是如何将 getFullName
函数添加到 return 我们对象中的 FullName
字符串:
class Teacher extends DataObject {
// ...
public function getFullName() {
return $this->FirstName . ' ' . $this->LastName;
}
}
然后在我们的 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;
}
在 SilverStripe 中,当我在 DropdownField
.
map
时,我想 return 两个字段
我有一个包含字段 firstname
和 lastname
的数据对象 Teacher
。所以在我的 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;
}
如何合并 firstname
和 lastname
并将其传递给 map()
和 return 到 DropdownField
.
我们可以在自定义 DataObject
中创建获取函数以 return 我们喜欢的任何内容。这些 get 函数可以用在很多地方,包括 map
函数。
以下是如何将 getFullName
函数添加到 return 我们对象中的 FullName
字符串:
class Teacher extends DataObject {
// ...
public function getFullName() {
return $this->FirstName . ' ' . $this->LastName;
}
}
然后在我们的 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;
}