我正在使用 Respect 来验证项目中的某些表单,但该项目是西班牙语的,在花了很长时间阅读文档甚至其代码后,我不明白消息是如何工作的。
我正在使用 Slim,并且按照我在 Youtube 上的教程中阅读的示例使用 NestedValidationException。
这是验证方法:
public function validate($request, array $rules)
{
foreach ($rules as $field => $rule) {
try {
$rule->setName(ucfirst($field))->assert($request->getParam($field));
} catch (NestedValidationException $e) {
$e->findMessages([
'usernameAvailable' => '{{name}} ya existe en la base de datos',
'emailAvailable' => '{{name}} ya existe en la base de datos',
'notEmpty' => '{{name}} no puede estar vacío',
'noWhitespace' => '{{name}} no puede contener espacios',
'email' => '{{name}} debe contener un e-mail válido'
]);
//In English it's enough with
//$this->errors[$field] = $e->getMessages();
$this->$errors[$field] = $e->getMainMessage();
}
}
$_SESSION['errors'] = $this->errors;
return $this;
}
我之前看过一些回复,但有些回复对我来说很难理解,因为我不打算对图书馆进行整个翻译。我只是在尝试编写 5 或 6 条自定义消息。
编辑:使用消息的方法:
$validation = $this->c->validator->validate($request, [
'username' => v::noWhitespace()->notEmpty()->usernameAvailable(),
'email' => v::noWhitespace()->notEmpty()->email()->emailAvailable(),
'password1' => v::noWhitespace()->notEmpty(),
'password2' => v::noWhitespace()->notEmpty()->identical($inputPassword),
]);