2015-04-04 87 views
1

如何在将表单保存到数据库表之前验证已在表单字段 中输入的有效URL,例如“links”表格?如何验证CakePHP 3.x中的URL?

预先感谢您。

+0

使用php函数为此'filter_var($ url,FILTER_VA LIDATE_URL)' – 2015-04-04 16:15:06

+0

简短的回答是正则表达式 – starkeen 2015-04-04 16:15:39

+0

或者使用' '规则'=>“url'' 例如'$公共验证=阵列( '网站'=>阵列( '规则'=> 'URL' ) );'参考:http://book.cakephp.org/2.0/en/models/data-validation.html#Validation::url – 2015-04-04 16:20:31

回答

6

src/Model/Table/[YourClasses]Table.php

public function validationDefault(Validator $validator) { 
    // In with the other validators 
    $validator->add('url', 'valid', ['rule' => 'url']); 

    return $validator; 
} 

校验器的默认选项可在这里:

http://api.cakephp.org/3.0/class-Cake.Validation.Validation.html#_url

+0

工作很好!谢谢 ! – dkourk 2015-04-04 17:02:13

+0

没问题!很高兴工作! – 2015-04-04 17:04:13

1

是这样的:没有测试过,可能需要一点调整方案的..

function check_url($url) 
    { 
$url = preg_match_all('#[[email protected]:%_\+.~\#?&//=]{2,256}\.[a-z]{2,4}\b(\/[[email protected]:%_\+.~\#?&//=]*)?#si', $url); 
     return $url; 
    }