SilverStripe CMS,按标题或其他匹配项搜索下拉字段?
SilverStripe CMS, Dropdown Field search by title or another match?
您好,在这个用例中,我想通过标题或产品代码进行搜索,但是 map('ID', 'Title')
方法不需要第二个参数的数组,我怎么能得到它?
/* original snippet */
DropdownField::create(
'ProductID',
'Prodotto',
Product::get()->sort('Title', 'ASC')->map('ID', 'Title')
)->setEmptyString('-- Seleziona --');
/* dummy sample snippet */
DropdownField::create(
'ProductID',
'Prodotto',
Product::get()->sort('Title', 'ASC')->map('ID', ['Code','Title'])
)->setEmptyString('-- Seleziona --');
我看了一下 API,不幸的是我找不到满足此要求的 DropdownField 方法。
谢谢
您的问题要求进行搜索,但您的代码正在为 DropDownField 生成一个字符串。
如果您想为下拉菜单添加更高级的标签,您需要在 Product DataObject 上使用辅助方法,例如
public function getCodeAndTitleFormatted()
{
return $this->Code . ': ' . $this->Title;
}
然后在 ->map()
语句中使用此方法创建 DropDownField,例如:
DropdownField::create(
'ProductID',
'Prodotto',
Product::get()->sort('Title', 'ASC')->map('ID', 'getCodeAndTitleFormatted')
)->setEmptyString('-- Seleziona --');
您好,在这个用例中,我想通过标题或产品代码进行搜索,但是 map('ID', 'Title')
方法不需要第二个参数的数组,我怎么能得到它?
/* original snippet */
DropdownField::create(
'ProductID',
'Prodotto',
Product::get()->sort('Title', 'ASC')->map('ID', 'Title')
)->setEmptyString('-- Seleziona --');
/* dummy sample snippet */
DropdownField::create(
'ProductID',
'Prodotto',
Product::get()->sort('Title', 'ASC')->map('ID', ['Code','Title'])
)->setEmptyString('-- Seleziona --');
我看了一下 API,不幸的是我找不到满足此要求的 DropdownField 方法。
谢谢
您的问题要求进行搜索,但您的代码正在为 DropDownField 生成一个字符串。
如果您想为下拉菜单添加更高级的标签,您需要在 Product DataObject 上使用辅助方法,例如
public function getCodeAndTitleFormatted()
{
return $this->Code . ': ' . $this->Title;
}
然后在 ->map()
语句中使用此方法创建 DropDownField,例如:
DropdownField::create(
'ProductID',
'Prodotto',
Product::get()->sort('Title', 'ASC')->map('ID', 'getCodeAndTitleFormatted')
)->setEmptyString('-- Seleziona --');