Как проверить URL, но игнорировать, если http: // или пусто?

StackOverflow https://stackoverflow.com/questions/4783872

Вопрос

Я хочу проверить поле формы для URL. Я установил по умолчанию поле на http: //. Когда пользователь не вводит URL и оставляет http: //, он говорит неверный URL. URL не требуется, поэтому, если это только http: //, он не должен показывать сообщение об ошибке. Как я могу заставить его игнорировать, если человек представляет http: // в качестве URL?

Спасибо

Это было полезно?

Решение

http: // не является действительным URL, поэтому, если вы хотите разрешить это в любом случае, есть 2 варианта

  1. создать Пользовательское правило проверки, это верно для реального URL + http: //
  2. использовать Прежде чем подтвердить обратный вызов и установите поле 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;
    }
    ..
}

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top