非常简单的问题,我正在创建一个下拉字段并尝试设置所选的值,如下所示:
$tourField = DropdownField::create('Tour', 'Tour', Tour::get()->sort('TourName ASC')->map('ID', 'TourName')->toArray(), $currentTourID);
我已确认$ currentTourID包含正确的值(数字ID),并且该值存在于结果下拉列表中。渲染时,默认情况下不会选择下拉列表中的项目。所以我想我在这里有别的错误。
编辑:请注意,此字段是与对象的has_one关系字段,对于此对象,其值为null。我试图覆盖它并使用更聪明的东西设置它。
答案 0 :(得分:1)
我的编辑让我意识到我所要做的就是设置这些字段的对象表示,而不是尝试手动覆盖默认值。这里的关键是有问题的下拉列表引用了对象中的关系。
所以而不是:
$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());