在 Yii2 中进行数据验证时,可以使用 yii\validators\Validator 类提供的 message 属性来自定义错误信息内容。具体来说,可以在使用验证器时,通过配置 message 属性来指定错误信息,例如:
// 验证 username 是否为必填项
['username', 'required', 'message' => '用户名不能为空'],
// 验证 age 是否为整数
['age', 'integer', 'message' => '年龄必须为整数'],
// 验证 email 是否为有效的电子邮件地址
['email', 'email', 'message' => '请输入有效的电子邮件地址'],
以上代码中,每个验证器都通过 message 属性指定了对应的错误信息。当验证不通过时,Yii2 会自动将错误信息中的占位符替换成实际的值,比如 {attribute} 会被替换成被验证属性的名称,{value} 会被替换成被验证的值。
在底层原理上,当进行数据验证时,Yii2 会调用对应的验证器来对数据进行验证。当验证不通过时,Yii2 会在相应的模型或表单中生成一个 yii\base\Model 的实例,并将错误信息存储在该实例中。然后,在模型或表单中,可以通过调用 getErrors() 方法获取所有的错误信息。最终,当模型或表单将数据返回给用户界面时,可以根据需要在视图中显示相应的错误信息。