如何在 Zend Framework 2 中向表单添加错误消息?

aut*_*tix 2 php validation validationerror zend-form zend-framework2

我有一个Zend\Form带有多个嵌套Fieldsets的复合体。现在我需要实现交叉验证Fieldset。这意味着,验证规则是指Element来自不同Fieldsets 的多个s。我发现这样做的唯一方法是在 中实现此验证MyForm#isValid(),因为它是唯一的地方,我可以从中访问每个Fieldset地方。

MyForm extends Form
{
    public function isValid()
    {
        $isFormValid = parent::isValid();
        $isCrossFieldsetVaidationOk = // my additional validation logic
        return $isFormValid && $isCrossFieldsetVaidationOk;
    }
}
Run Code Online (Sandbox Code Playgroud)

尚未测试,但它会工作。问题在于添加错误消息。

我试过了

$this->setMessages(array_merge(
    $this->getMessages(), ['my new message'])
);
Run Code Online (Sandbox Code Playgroud)

但它不起作用。

如何添加Form错误消息?

小智 5

需要为表单元素加入消息。

$form->get('password')->setMessages(['Wrong password']);
Run Code Online (Sandbox Code Playgroud)