【问题标题】:SilverStripe Linkable ModuleSilverStripe 可链接模块
【发布时间】:2015-12-09 12:03:59
【问题描述】:

我在扩展 DataObject 中使用 Link 类作为$has_one。但是当我保存我的对象时,链接值会丢失。

<?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;
    }
}

我在 Page 中尝试了该示例,它可以工作,但在 DataObject 中我无法保存该值。

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

【问题讨论】:

    标签: silverstripe


    【解决方案1】:

    Example 中所述,您需要将ID 添加到字段标题中。由于它是$has_one 关系,MyLink 将在数据库中保存为MyLinkID

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

    应该可以解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-03
      • 2012-09-12
      • 2011-05-06
      • 1970-01-01
      相关资源
      最近更新 更多