Silverstripe DropdownField 不遵守默认值参数
Silverstripe DropdownField does not respect default value argument
非常简单的问题,我正在创建一个下拉字段并尝试像这样设置所选值:
$tourField = DropdownField::create('Tour', 'Tour', Tour::get()->sort('TourName ASC')->map('ID', 'TourName')->toArray(), $currentTourID);
我已确认 $currentTourID 包含正确的值(数字 ID)并且该值存在于生成的下拉列表中。呈现时,默认情况下不会选择下拉列表中的任何项目。所以我想我这里还有其他问题。
编辑:注意这个字段是一个与对象的has_one关系字段,在这个对象的情况下,它的值为空。我正在尝试覆盖它并使用更智能的东西来设置它。
我的编辑让我意识到我所要做的就是设置这些字段的对象表示,而不是尝试手动覆盖默认值。这里的关键是有问题的下拉菜单引用了对象中的关系。
所以代替:
$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());
非常简单的问题,我正在创建一个下拉字段并尝试像这样设置所选值:
$tourField = DropdownField::create('Tour', 'Tour', Tour::get()->sort('TourName ASC')->map('ID', 'TourName')->toArray(), $currentTourID);
我已确认 $currentTourID 包含正确的值(数字 ID)并且该值存在于生成的下拉列表中。呈现时,默认情况下不会选择下拉列表中的任何项目。所以我想我这里还有其他问题。
编辑:注意这个字段是一个与对象的has_one关系字段,在这个对象的情况下,它的值为空。我正在尝试覆盖它并使用更智能的东西来设置它。
我的编辑让我意识到我所要做的就是设置这些字段的对象表示,而不是尝试手动覆盖默认值。这里的关键是有问题的下拉菜单引用了对象中的关系。
所以代替:
$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());