SilverStripe Показать ошибку дублирования логики - PullRequest
0 голосов
/ 21 мая 2018

Я получаю ошибку в SilverStripe для дублирования, когда при использовании «DisplayLogicWrapper :: create» он делает это независимо от того, кажется ли его поле загрузки или поле сетки или любой другой аналогичной проблемой.Любая помощь приветствуется!

PHP 5.6.30, плагин silverstripe / cms 3.5.3, плагин unclecheese / 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 Ответ

0 голосов
/ 23 мая 2018

Я не знаком с этим модулем, но похоже, что вы пытаетесь отобразить UploadField условно, и в этом случае, возможно, вам нужно убедиться, что загружаемый по умолчанию файл UploadField автоматически удаляется первым:

public function getCMSFields()
{
    $fields = parent::getCMSFields();

    $fields->removeByName('IntroBackgroundIMG');
    $fields->addFieldToTab('Root.Main', DisplayLogicWrapper...
...