ZF 1.11.3 こちら。
$validators = array(
'pass1' => array('presence' => 'required'),
'pass2' => array(array('Identical', true, 'token' => 'pass1'))
),
$input = new Zend_Filter_Input(array(), $validators, $this->_request->getParams());
if (!$input->isValid()) {
var_dump($input->getMessages());
}
上記のコードを使用すると、次のようになります(実際にはfirephpでフォーマットされています):
['pass2'] =>
array(
['notSame'] => 'The two given tokens do not match'
)
ご想像のとおり、「pass1」と「pass2」に同じ文字列が含まれていても、そのエラーが表示されます (基本的にはパスワード確認フォームです)。
Zend_Form や addValidator() を使用することはできません (聞かないでください)。そのため、この構文を使いこなさなければなりません。を指していarray(array('Identical', true, 'token' => 'pass1'))
ます。私も試してみましたarray(array('Identical', true, array('token' => 'pass1')))
が、同じエラーが発生しました。これらの配列をどこに設定するのか理解していないようです。
提案、修正、または「半分!」。