Yii2 不带http、https的Yi2 url验证

Yii2 不带http、https的Yi2 url验证,yii2,yii2-advanced-app,Yii2,Yii2 Advanced App,我在我的模型中使用了url验证代码,但它给了我错误。 我只是验证用户是否只需要像google.com或yahoo.com那样输入,而不需要http和www。 我怎么能做到这一点 [['thankyou_page_url','confirmation_page_url'],'url'], 我现在无法测试它。但是我认为您需要添加defaultScheme选项。defaultScheme的默认值为null,这意味着URL中必须存在有效的方案 如果你把它改成 [['thankyou_page_url

我在我的模型中使用了url验证代码,但它给了我错误。 我只是验证用户是否只需要像google.com或yahoo.com那样输入,而不需要http和www。 我怎么能做到这一点

 [['thankyou_page_url','confirmation_page_url'],'url'],

我现在无法测试它。但是我认为您需要添加
defaultScheme
选项。
defaultScheme
的默认值为
null
,这意味着URL中必须存在有效的方案

如果你把它改成

[['thankyou_page_url','confirmation_page_url'],'url', 'defaultScheme' => 'http'],
如果输入中没有提供任何内容,则会自动添加http://part。我认为,如果您将
defaultScheme
设置为空字符串,它也将允许不带方案的URL。因此,也许这是可行的:

[['thankyou_page_url','confirmation_page_url'],'url', 'defaultScheme' => ''],

这很简单,只需从模式中删除shemes部分

['url', 'url', 'pattern'=>'/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(?::\d{1,5})?(?:$|[?\/#])/i'],

我将我的默认方案设置为https,它可以工作,除非输入中已经有http://了。如果使用http完成,是否可以使其覆盖?