2015-12-09 70 views
1

在擴展數據對象中使用Link類作爲$has_one。但是,當我保存我的對象的鏈接值丟失。SilverStripe Linkable模塊

<?php 

class Teaser extends DataObject { 

    private static $db = array (
     'Title' => 'Varchar', 
     'Description' => 'HTMLText' 
    ); 

    private static $has_one = array (
     'Photo' => 'Image', 
     'MyLink' => 'Link' 
    ); 

    private static $many_many = array(
     'Tags' => 'Tag' 
    ); 

    private static $summary_fields = array (
     // ... 
    ); 

    public function getCMSFields() { 
     $fields = FieldList::create(
      TextField::create('Title'), 
      $tags = TagField::create('Tags','Tags',Tag::get(),$this->Tags()), 
      HTMLEditorField::create('Description', 'Beschreibung'), 
      LinkField::create('MyLink', 'Weiterleitung', $this->MyLink()), 
      $uploader = UploadField::create('Photo') 
     ); 

     // ... 

     return $fields; 
    } 
} 

我試過頁面中的例子,它的工作原理,但在DataObject中,我不能保存該值。

https://github.com/sheadawson/silverstripe-linkable

回答

2

如您需要添加ID到字段標題Example說明。由於這是一個$has_one關係,因此MyLink將被保存爲MyLinkID在數據庫中。

LinkField::create('MyLinkID', 'Weiterleitung', $this->MyLink()) 

應該這樣做。

+0

謝謝你的作品! –