Silverstripe DropdownField不符合默认值参数

Silverstripe DropdownField不符合默认值参数,silverstripe,Silverstripe,非常简单的问题,我正在创建一个下拉字段,并尝试设置所选值,如下所示: $tourField = DropdownField::create('Tour', 'Tour', Tour::get()->sort('TourName ASC')->map('ID', 'TourName')->toArray(), $currentTourID); 我已经确认$currentTourID包含正确的值(数字ID),并且该值存在于结果下拉列表中。渲染时,默认情况下不会选择下拉列表中的任何

非常简单的问题,我正在创建一个下拉字段,并尝试设置所选值,如下所示:

$tourField = DropdownField::create('Tour', 'Tour', Tour::get()->sort('TourName ASC')->map('ID', 'TourName')->toArray(), $currentTourID);
我已经确认$currentTourID包含正确的值(数字ID),并且该值存在于结果下拉列表中。渲染时,默认情况下不会选择下拉列表中的任何项目。所以我想我这里还出了点问题


编辑:请注意,此字段是与对象有一个关系的字段,对于此对象,其值为空。我正在尝试覆盖它,并使用更智能的方法进行设置。

我的编辑让我意识到,我所要做的就是设置这些字段的对象表示,而不是尝试手动覆盖默认值。这里的关键是所讨论的下拉列表引用对象中的关系

因此,不是:

$currentTourID = $mySmartFunction();
$tourField = DropdownField::create('TourID', 'Tour', Tour::get()->sort('TourName ASC')->map('ID', 'TourName')->toArray(), $currentTourID);
我这样做:

$this->TourID = $mySmartFunction();
$tourField = DropdownField::create('TourID', 'Tour', Tour::get()->sort('TourName ASC')->map('ID', 'TourName')->toArray());

如果有效,请将您自己的答案设置为已接受的答案:)