在表单提交后处理图像验证时遇到一些问题。有我的表单提交功能:
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']并且表单返回并清除我的会话数据。我做错了什么?
答案 0 :(得分:1)
您可以使用RequiredFields
来验证所需的表单字段。
Form
构造函数采用第五个参数,您可以在其中提供必需的字段验证器。
示例:
$form = Form::create(
$this,
'FormAjouter',
$fields,
$actions,
RequiredFields::create(['Image'])
);
自定义验证消息的最简单方法是使用i18n
。如果您的默认语言环境是法语,请创建一个名为mysite/lang/fr.yml
的文件,您可以在其中输入以下内容:
Form:
FIELDISREQUIRED: 'Veuillez remplir le champ {name}'
{name}
将替换为您的实际字段标题。当然你也可以省略占位符。
如果您需要针对单个表单字段使用不同的文本,则可以在需要自定义错误消息的每个字段上使用setCustomValidationMessage
。
示例:
$uploadField = FileField::create('Image');
$uploadField->setCustomValidationMessage('Please upload a file');