allowEmptyString () - средства позволяют только пустую строку или заполненную строку и пустую строку - PullRequest
0 голосов
/ 04 марта 2020

Cake PHP Версия: 4.0.1

// Введение

Мне нужно проверить список выбора оценок, чтобы он принимал пустую строку или заполненную строка.


Я хотел бы проверить мою интерпретацию следующего предложения, которое можно найти здесь .

allowEmptyString () Должен использоваться когда вы хотите принять только пустую строку.

Означает ли это, что я должен использовать эту функцию, только когда я ONLY хочу принять пустую строку или когда я хочу принять пустая строка или заполненная строка.

Причина, по которой я спрашиваю, заключается в том, что когда я использую allowEmptyString (), он отменяет отображение --Select-- в моих списках выбора. См. Ниже:

// Просмотр рынков Добавить

$options = [
    '' => '--Select--', // THIS IS WHAT IS NOT DISPLAYED WHEN I USE allowEmptyString() IN THE MARKETS TABLE VALIDATOR.
    'A' => 'A',
    'B' => 'B',
    'C' => 'C',
    'D' => 'D',
    'E' => 'E'
];

echo $this->Form->control('grade', [
    'type' => 'select',
    'options' => $options,
    'class' => 'ns-std std',
    'autocomplete' => 'off',
    'label' => false
]);

// Средство проверки таблицы рынков по умолчанию

->scalar('grade')
->allowEmptyString('grade') // IF I COMMENT THIS LINE THE --Select-- OPTION IS DISPLAYED.
->add('grade', 'validGrade', [
    'rule' => 'isValidGrade',
    'message' => __('Invalid grade!'),
    'provider' => 'table'
])

Если я сделаю буквальное толкование предложения, это значит для меня, что я НЕ должен использовать эту функцию в валидаторе, потому что список выбора оценок может содержать только заполненную строку ИЛИ пустую строку, а предложение «только принять пустое» string '

Но прежде чем я go опередил и удалил все ссылки на allowEmptyString () в моих валидаторах, где это уместно, я решил проверить.

Также по умолчанию это будет означать, что есть нет проверки на пустую или заполненную строку.


// Мой вопрос

Правильно ли мое толкование предложения, и я НЕ должен использовать эту функцию, потому что я хочу принять пустую ИЛИ заполненную строку.

Спасибо, Zenzs.


РЕДАКТИРОВАТЬ Salines ...

// Рынки Добавить Просмотр

echo $this->Form->select(
    'grade',
    ['A', 'B', 'C', 'D', 'E'],
    [
       'empty' => '--Select--',
       'class' => 'ns-std std',
       'autocomplete' => 'off',
       'label' => false
    ],
 );

// Таблица рынков валидатор по умолчанию

->scalar('grade')
->allowEmptyString('grade')

Вышеупомянутый метод все работает, и теперь я успешно проверяю для пустой строки и заполненной строки.

Мне нужно будет создать новую custom validation rule 0, 1, 2, 3 и 4 вместо A, B, C, D и E вставляются в базу данных и ячейку для обработки преобразований в представлении, но это не проблема. Я должен буду сделать это завтра, хотя у меня сегодня не хватает времени.

...