无法在DropdownField中设置源

时间:2017-08-09 14:03:27

标签: php silverstripe

我想在发件人的下拉字段名称中选择

DropdownField::create('Sender','Sender')->setSource(Member::get()->map('ID','FirstName'))->setEmptyString('Select one'),

在CMS中,我看到FirstName。但是当我在模板中渲染时

<% loop LettersSearchResults %>
   ......
      <td >$Sender</td>

它显示ID,而不是名字。这是怎么回事?

1 个答案:

答案 0 :(得分:3)

Member::get()->map('ID','FirstName')将ID设置为key,将FirstName设置为title,因此ID将保存在数据库中 - title仅用于填充下拉列表。

如果您在某个数据对象上有一个has_one关系,那么您可以保存SenderID并可以在模板中执行Sender.FirstName