如何验证URL,但如果http://或空白则忽略?

时间:2011-01-24 15:43:03

标签: php cakephp cakephp-1.3 cakephp-routing

我想验证网址的表单字段。我已将字段的默认值设置为http://。当用户没有输入URL并离开http://时,它表示无效的URL。 URL不是必需的,因此如果它只是http://,则不应显示错误消息。如果此人提交http://作为URL,我怎么能忽略它?

由于

1 个答案:

答案 0 :(得分:3)

http:// 不是有效网址,所以如果你想允许它还有2个选项

  1. 创建一个custom validation rule,对于真实网址+ http://
  2. 返回true
  3. 使用before validate callback并将网址字段设为空白,如果只是 http://
  4. 希望有所帮助

    编辑

    我忘记了:您不需要设置必需的'allowEmpty' => true

    required - >表单必须包含发送到服务器的字段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;
        }
        ..
    }