Как проверить URL, но игнорировать, если http: // или пусто? - PullRequest
2 голосов
/ 24 января 2011

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

Спасибо

1 Ответ

3 голосов
/ 24 января 2011

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

  1. создать пользовательское правило проверки , которое возвращает true для реального URL + http://
  2. используйте перед проверкой обратного вызова и установите поле URL пустым, если оно просто http://

надеюсь, что это поможет

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

Я забыл: вам не нужно устанавливать необходимые, но 'allowEmpty' => true

обязательно -> форма должна содержать поле xyz, которое отправляется на сервер

allowEmpty -> поле может быть пустым


Я добавил ссылку на функцию обратного вызова выше, но в любом случае .. вот она:

в вашем классе моделей (я полагаю, это User):

class User extends AppModel {
    ..

    function beforeValidate() {
        if (isset($this->data['User']['url']) && $this->data['User']['url'] == 'http://') {
            $this->data['User']['url'] = '';
        }
        return true;
    }
    ..
}

...