2017-04-26 45 views
2

我有一個自定義的DataObject稱爲X.在這個Dataobject amoung其他領域,我想有一個自定義DataObject Y的其他項的DropdownField。我正是在該下拉是值 - > URL並在下拉菜單中顯示標題作爲標題。我可以將標題顯示在下拉菜單中,但在與HTML檢查員一起查看後,值看起來像值屬性始終爲空Silverstripe下拉與自定義對象

class X extends DataObject { 
    public static $db = array(
     'Title' => 'Varchar(255)', 
     'SortID' => 'Int' 
    ); 

    public static $has_one = array(
     'Y' => 'Y', 
     'Thumbnail' => 'Image' 
    ); 

    public static $summary_fields = array(
     'ID', 'Title' 
    ); 


    public function getCMSFields(){ 
    $fields = parent::getCMSFields(); 
    $fields = FieldList::create(
      TextField::create('Title', 'Title'), 
      DropdownField::create(
       'Y', 
       'Y', 
       Y::get()->map(array('URL' => 'Title')) 
      ), 
      UploadField::create('Thumbnail', 'Thumbnail') 
     ); 

     return $fields; 
    } 
} 

回答

2

map方法接受兩個參數,即數組的id和值。

DropdownField::create(
    'Y', 
    'Y', 
    Y::get()->map('URL', 'Title') 
) 
+0

首先感謝您的回覆,現在它似乎插入了正確的值,但在模板中顯示它似乎會返回服務器錯誤。該問題僅出現在Dropdown的值,其他字段的工作,所以它不是與函數我循環的問題。我嘗試使用以下變量來獲取它:$ Y –

+0

不需要了解它,您的答案非常有幫助。謝謝 ! –