Php SFValidatorSchema是否与自己的值相比较?

Php SFValidatorSchema是否与自己的值相比较?,php,symfony1,symfony-1.4,Php,Symfony1,Symfony 1.4,这将比较表单中的两个值。 我想与自己的价值观进行比较: $this->validatorSchema->setPostValidator(new sfValidatorAnd(array( new sfValidatorSchemaCompare('email', '==', 'email_confirm', array(), array('invalid' => 'The email adresses must ma

这将比较表单中的两个值。 我想与自己的价值观进行比较:

$this->validatorSchema->setPostValidator(new sfValidatorAnd(array(
      new sfValidatorSchemaCompare('email', '==', 'email_confirm',
            array(),
            array('invalid' => 'The email adresses must match')
          ),
      new sfValidatorSchemaCompare('password', '==', 'password_confirm',
            array(),
            array('invalid' => 'The passwords must match')
          ),
        )));

sfValidatorSchemaCompare
比较两个字段中输入的值(如第一个示例中所示)。 例如:它测试
密码
是否与
密码_确认
值匹配。在这种情况下,
password
password\u confirm
必须是表单中的字段(确切地说是验证器)

在您的情况下,您需要检查
密钥是否与预定义值匹配,而不是另一个字段。
这有点奇怪,默认情况下symfony没有验证器来检查这一点。但您可以轻松使用
sfvalidator选项
实现您的目标:

    new sfValidatorSchemaCompare('secret_key', '==', '123456',
            array(),
            array('invalid' => 'The secret key must match')
          ),

            How can i make it?
在这种情况下,在
secret\u key
中输入的值与仅包含您的密钥的值列表相匹配

还有一点“专业提示”;-):将密钥添加到app.yml,然后只需添加
sfConfig::get('app\u form\u secret\u key')
即可进行测试

$this->validatorSchema['secret_key'] = new sfValidatorChoice(array('choices' => array('123456')));