Необязательный параметр OptionssetField — SilverStripe 3.2.

В SilverStripe 3.1.* я использовал некоторые формы с OptionssetFields, которые являются необязательными, поэтому не требуется делать выбор. Это работало хорошо. Но так как я обновился до SilverStripe 3.2.0, форма больше не принимает это. При отправке приходит сообщение о проверке, даже если я не использую проверку во всей форме. Смотрите этот снимок экрана:

введите здесь описание изображения

Это код поля:

$ClassField = OptionsetField::create('Class', _t('General.CLASS', "Class"), array(
        "S" => "S",
        "E" => "E",
        "U" => "U",
        "R" => "R",
        "O" => "O",
        "P" => "P"
    ));

Любая идея снова сделать это поле необязательным в SilverStripe 3.2.0?


person brasileric    schedule 16.11.2015    source источник


Ответы (2)


Похоже, это ошибка в версии 3.2, теперь вам нужно сообщить OptionsetField, что он может быть пустым, используя setEmptyString():

$ClassField = OptionsetField::create(
    'Class', 
    _t('General.CLASS', "Class"), 
    array(...)
)
->setEmptyString('none');
person wmk    schedule 16.11.2015

Вас также может заинтересовать модуль silverstripe-display-logic, который позволяет отображать определенные поля на основе определенных условий: https://github.com/unclecheese/silverstripe-display-logic

person balazs.bohonyi    schedule 02.03.2018