提交失败后的 Silverstripe 表单图像验证
Silverstripe form image validation after submit failed
我在处理表单提交后的图像验证时遇到了一点问题。有我的表单提交功能:
public function FormAjouterSubmit($data, $form) {
....
Session::clear("PageAuteur.FormAjouterSubmit");
$texte = "Veuillez remplir ce champ";
if (!$data['ImageID']) {
Session::set("PageAuteur. FormAjouterSubmit", $data);
$form->addErrorMessage('Image', $texte, 'bad');
return $this->redirectBack();
}
....
}
我已经尝试了 !$data['ImageID'] 和 !$data['Image'] 以及表单 return 返回并清除我的会话数据。我做错了什么?
您可以使用 RequiredFields
来验证所需的 form-fields。
Form
构造函数采用第五个参数,您可以在其中提供所需的字段验证器。
示例:
$form = Form::create(
$this,
'FormAjouter',
$fields,
$actions,
RequiredFields::create(['Image'])
);
自定义验证消息的最简单方法是使用 i18n
。如果您的默认语言环境是法语,请创建一个名为 mysite/lang/fr.yml
的文件,您可以在其中放置如下内容:
Form:
FIELDISREQUIRED: 'Veuillez remplir le champ {name}'
{name}
将替换为您的实际字段标题。当然你也可以省略占位符。
如果您需要为个人 form-fields 使用不同的文本,您可以在每个需要自定义错误消息的字段上使用 setCustomValidationMessage
。
示例:
$uploadField = FileField::create('Image');
$uploadField->setCustomValidationMessage('Please upload a file');
我在处理表单提交后的图像验证时遇到了一点问题。有我的表单提交功能:
public function FormAjouterSubmit($data, $form) {
....
Session::clear("PageAuteur.FormAjouterSubmit");
$texte = "Veuillez remplir ce champ";
if (!$data['ImageID']) {
Session::set("PageAuteur. FormAjouterSubmit", $data);
$form->addErrorMessage('Image', $texte, 'bad');
return $this->redirectBack();
}
....
}
我已经尝试了 !$data['ImageID'] 和 !$data['Image'] 以及表单 return 返回并清除我的会话数据。我做错了什么?
您可以使用 RequiredFields
来验证所需的 form-fields。
Form
构造函数采用第五个参数,您可以在其中提供所需的字段验证器。
示例:
$form = Form::create(
$this,
'FormAjouter',
$fields,
$actions,
RequiredFields::create(['Image'])
);
自定义验证消息的最简单方法是使用 i18n
。如果您的默认语言环境是法语,请创建一个名为 mysite/lang/fr.yml
的文件,您可以在其中放置如下内容:
Form:
FIELDISREQUIRED: 'Veuillez remplir le champ {name}'
{name}
将替换为您的实际字段标题。当然你也可以省略占位符。
如果您需要为个人 form-fields 使用不同的文本,您可以在每个需要自定义错误消息的字段上使用 setCustomValidationMessage
。
示例:
$uploadField = FileField::create('Image');
$uploadField->setCustomValidationMessage('Please upload a file');