dse323222 2017-09-26 15:26
浏览 55
已采纳

SilverStripe 4 beta3 TreeDropdownField给出错误:SourceObject必须是DataObject的子类

I must be missing something simple...I'm using the documentation here: http://api.silverstripe.org/en/master/class-SilverStripe.Forms.TreeDropdownField.html and I think I'm doing this correctly, but getting the error : SourceObject must be a DataObject subclass

This is my code

<?php
use SilverStripe\CMS\Model\SiteTree;
use SilverStripe\Forms\TreeDropdownField;
use SilverStripe\Forms\TextField;
use SilverStripe\Forms\TextareaField;
class HomePage extends Page {
    private static $db = array(
        'CTA'       => 'Varchar(255)',
        'LinkText'  => 'Varchar(50)'
    );
    private static $has_one = array(
        'PageLink'  => 'SiteTree'

    );
    public function getCMSFields() {
        $fields = parent::getCMSFields();
        $fields->addFieldToTab('Root.Main', TextareaField::create('CTA', 'Call To Action Text'), 'Content');
        $fields->addFieldToTab('Root.Main', TreeDropdownField::create('PageLinkID', 'What page does this call-to-action link to?', 'SiteTree'), 'Content');
        $fields->addFieldToTab('Root.Main', TextField::create('PageLinkText', 'Call To Action Link Text (Example: "Learn more")'), 'Content');
        $fields->removeByName('Content');
        return $fields;
    }
}
  • 写回答

1条回答 默认 最新

  • douzhaishan5462 2017-09-26 20:15
    关注

    You need to use a fully qualified class name:

    $fields->addFieldToTab(
        'Root.Main',
        TreeDropdownField::create(
            'PageLinkID',
            'What page does this call-to-action link to?',
            SiteTree::class
        ),
        'Content'
    );
    

    This also goes for your model relations:

    private static $has_one = array(
        'PageLink'  => SiteTree::class,
    
    );
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记