Как проверить URL, но игнорировать, если http: // или пусто?
-
24-10-2019 - |
Вопрос
Я хочу проверить поле формы для URL. Я установил по умолчанию поле на http: //. Когда пользователь не вводит URL и оставляет http: //, он говорит неверный URL. URL не требуется, поэтому, если это только http: //, он не должен показывать сообщение об ошибке. Как я могу заставить его игнорировать, если человек представляет http: // в качестве URL?
Спасибо
Решение
http: // не является действительным URL, поэтому, если вы хотите разрешить это в любом случае, есть 2 варианта
- создать Пользовательское правило проверки, это верно для реального URL + http: //
- использовать Прежде чем подтвердить обратный вызов и установите поле URL на пустое, если оно просто http: //
надеюсь, это поможет
РЕДАКТИРОВАТЬ
Я забыл: вам не нужно устанавливать необходимость, но 'allowEmpty' => true
требуется -> Форма должна содержать поле XYZ, которое отправляется на сервер
Полезайте-> Поле может быть пустым
Я добавил ссылку на функцию обратного вызова выше, но в любом случае .. вот она:
в вашем уроке моделя (я просто предполагаю, что это User
):
class User extends AppModel {
..
function beforeValidate() {
if (isset($this->data['User']['url']) && $this->data['User']['url'] == 'http://') {
$this->data['User']['url'] = '';
}
return true;
}
..
}