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 вставляются в базу данных и ячейку для обработки преобразований в представлении, но это не проблема. Я должен буду сделать это завтра, хотя у меня сегодня не хватает времени.