我正在设置tutorial 5 Mentor部分,因为我正在建立的网站上有教师,所以完全相同的概念。
当我从页面链接指导者时,当我搜索文本字段时,我得到的结果不显示名字字段,they show the dataobject id #.
我的字段是数据对象和数据对象上的FistName和LastName我设置了$ searchable_fields& $ summary_fields匹配这些列,但我仍然得到上面的结果。
此外,我的搜索字段为start shows this.注意占位符文本中的“部分匹配”。它不应该只显示字段名称吗?
使用3.1并且基本上只是为指导者部分复制并粘贴了教程5。该教程似乎开箱即用,所以我错过了什么?
答案 0 :(得分:2)
标题是CMS中DataObject
几乎所有基本演示文稿的默认显示值。
但并非所有DataObject
都有标题,因此类DataObject
的方法getTitle()
会返回"#{$this->ID}
。
有两种方法可以解决您的问题:
覆盖DataObject(Mentor)中的getTitle()
public function getTitle() {
return "{$this->Firstname} {$this->Lastname}";
}
告诉GridField上的搜索字段使用除title之外的其他东西(根据教程的示例代码)
class Project extends Page {
public function getCMSFields() {
$config = new GridFieldConfig_RelationEditor();
$autoCompleteComponent = $config->getComponentByType('GridFieldAddExistingAutocompleter');
$autoCompleteComponent->setResultsFormat('$FirstName $LastName');
$mentorsField = new GridField(
'Mentors',
'Mentors',
$this->Mentors(),
$config
);
$fields->addFieldToTab('Root.Mentors', $mentorsField);
return $fields;
}
}