Silverstripe 链接数据对象时的搜索字段
我基本上是在设置这个部分,因为我正在创建的站点有教师,所以概念完全相同 当我从页面链接导师时,当我搜索文本字段时,我得到的结果不会显示名字字段 我的字段是dataobject上的FistName和LastName,在dataobject上我设置了$searchable_字段和$summary_字段来匹配这些列,但我仍然得到上面的结果 此外,我的搜索字段会注意占位符文本中的“部分匹配”。它不应该只显示字段名吗Silverstripe 链接数据对象时的搜索字段,silverstripe,Silverstripe,我基本上是在设置这个部分,因为我正在创建的站点有教师,所以概念完全相同 当我从页面链接导师时,当我搜索文本字段时,我得到的结果不会显示名字字段 我的字段是dataobject上的FistName和LastName,在dataobject上我设置了$searchable_字段和$summary_字段来匹配这些列,但我仍然得到上面的结果 此外,我的搜索字段会注意占位符文本中的“部分匹配”。它不应该只显示字段名吗 使用3.1,基本上只是复制和粘贴导师部分的教程5。本教程似乎是开箱即用的,那么我还缺少什
使用3.1,基本上只是复制和粘贴导师部分的教程5。本教程似乎是开箱即用的,那么我还缺少什么呢?Title是CMS中几乎所有
数据对象的基本表示形式的默认显示值。
但并非所有的DataObject
都有标题,因此类DataObject
有一个方法getTitle()
,该方法返回“{$this->ID}
有两种方法可以解决您的问题:
覆盖数据对象(导师)中的getTitle()
告诉GridField上的搜索字段thingy使用标题以外的内容(根据教程的示例代码)
太好了,谢谢你的详细解释。我将在周一尝试一下,但听起来好像已经涵盖了所有内容。接下来,覆盖getTitle()函数的第一个选项不起作用。结果返回一个高度很小的空列表。尽管第二个选项起作用。不确定,但第一个示例可能失败,因为在{$this->Firstname}{$this->Lastname}
N是小写的,用{$this->Firstname}{$this->Lastname}{/code>试试看。哦,对了。谢谢你这么做。我刚刚快速复制并粘贴了,没有看到大写字母的部分。谢谢你的解决方案!
public function getTitle() {
return "{$this->Firstname} {$this->Lastname}";
}
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;
}
}