【问题标题】:silverstripe custom form field error messagesilverstripe 自定义表单字段错误消息
【发布时间】:2023-12-18 13:23:01
【问题描述】:

在我的表单处理功能中,我有:

$form->addErrorMessage('Email', 'Your email address is already registered in our system','bad');

在我的模板中:

$Fields.FieldByName(Email)

我可以看到错误类已添加到输入中,但是如何显示内联错误消息?

【问题讨论】:

    标签: silverstripe


    【解决方案1】:

    我不确定这是否是您正在寻找的,但我会这样做:

    public function MyFormAction(){
        //do something
        if(//something is wrong){
            $this->MyErrorMessage = 'Something is wrong';
            return $this->renderWith(array('MyFormPage', 'Page'));
        }
    }
    

    然后我可以在模板中放置我想要的位置:

    <% if $MyErrorMessage %>
    <p class='bad'>$MyErrorMessage</p>
    <% end_if %>
    

    【讨论】:

      【解决方案2】:

      您只需在 $form->addErrorMessage('Email', 'Your email address is already registered in our system','bad'); 中添加以下内容;

      return $this->redirectBack();
      

      我在我的所有表单上都使用它。请务必在提交函数中使用它。您将被重定向到您的表单,并在电子邮件字段下方显示错误消息。您无需为此创建自定义模板。

      【讨论】: