我的目標是驗證在URL中傳遞的參數,所以我創建了一個具有驗證清單的運行,像這樣一個validate方法:Zend框架InArray校驗數組的語法
$validators = array(
'number' => array(
'digits',
'presence' => 'required',
'messages' => array(
"%value%' is not a valid number.",
),
),
'country' => array(
'presence' => 'required',
'InArray' => array('haystack' => array('USA', 'CAN', 'AUS', 'JPN')),
'messages' => array(
"'%value%' is not a valid country code.",
),
),
// etc.
);
$valid = new Zend_Filter_Input(array(), $validators, $data);
return $valid->isValid()
的問題是, 'InArray'驗證器不做任何事情。它不會產生任何錯誤,它只是不起作用。我認爲我得到的語法錯誤。
「InArray」驗證程序的正確語法是什麼?
你將這些驗證器傳遞給了什麼? 'haystack'應該是它自己的索引,比如'messages',而不是'InArray'鍵上的數組元素。 – drew010 2012-08-14 19:23:40
爲了清楚起見,我更新了問題。你是說'InArray'會被聲明爲'數字','haystack'是一個單獨的索引嗎? [好的,那是行不通的。它導致Zend_Validate_InArray失蹤參數] – Ian 2012-08-14 20:21:14
看到我的答案,我想你可能一直在嘗試將數組傳遞給Zend_Form,它可以接受haystack參數,儘管不是上面提供的格式。 – drew010 2012-08-14 20:31:43