代码之家  ›  专栏  ›  技术社区  ›  user9013856

SilverStripe显示逻辑重复错误

  •  1
  • user9013856  · 技术社区  · 8 年前

    当使用“DisplayLogicWrapper::create”时,我在SilverStripe中得到了一个复制错误,不管它的upload字段、gridfield或任何其他问题看起来是否相同,它都会这样做。感谢您的帮助!

    PHP5.6.30、silverstripe/CMS3.5.3、cms/display logic 1.5 插件: https://github.com/unclecheese/silverstripe-display-logic/tree/1.5.0#dealing-with-non-standard-form-fields

    private static $has_one = array(
      'IntroBackgroundIMG' => 'Image',
    );
    
    DisplayLogicWrapper::create(
      UploadField::create('IntroBackgroundIMG', 'Background Image'))
      ->displayIf("BackgroundType")->isEqualTo("img")
      ->end(),
    

    [User Error] collateDataFields() I noticed that a field called 
    'IntroBackgroundIMG' appears twice in your form: '(unknown form)'. One is a 
    'UploadField' and the other is a 'UploadField'
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   scrowler    8 年前

    我不熟悉这个模块,但看起来您试图有条件地显示UploadField,在这种情况下,您可能需要确保首先自动删除搭建的默认UploadField:

    public function getCMSFields()
    {
        $fields = parent::getCMSFields();
    
        $fields->removeByName('IntroBackgroundIMG');
        $fields->addFieldToTab('Root.Main', DisplayLogicWrapper...
    
    推荐文章