2011-05-28 40 views
2

我在Kohana中有一個規則3.1檢查一個非空字段,即使爲空也總是通過驗證檢查。即使當它檢查的字段爲空時,Valid::empty也不會返回錯誤,這意味着用戶可以提交一個空表單並且$post->check將返回true。Kohana中的有效:: not_empty 3.1總是通過驗證檢查

$post = Validation::factory($_POST) 
    ->rule('username', 'Valid::not_empty'); 

在這個例子中$post->check()將通過即使當username是空的。我不明白這個原因。如果我試圖驗證表單並且字段不能留空,用戶可以提交一個空表單並且它將通過驗證檢查。

這種行爲的原因是什麼?達到預期結果的最佳方法是什麼?

+0

你知道 - > check()返回一個布爾值,如果它是有效的或不是? – Ikke 2011-05-28 06:28:28

回答

2
$post = Validation::factory($_POST) 
    ->rule('username', 'not_empty'); 

只要刪除「Valid ::」。 :)

+0

工作,謝謝!該文檔有點誤導:「在Valid類中定義的規則可以單獨使用方法名添加。以下三條規則是等效的: $ object-> rule('number','phone'); $ object - > rule('number',array('Valid','phone')); $ object-> rule('number','Valid :: phone');「我認爲這也繼承了'not_empty'。 – 2011-05-28 16:24:31