2015-04-04 131 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; 
    }