我可以通过模型中的这些代码更改表单验证器错误消息:
array('name, email, subject, body', 'required'
'message'=>'Please enter a value for {attribute}.'),
但我不知道 {attribute} 来自哪里以及如何为每个字段更改它,所以任何帮助将不胜感激。
我可以通过模型中的这些代码更改表单验证器错误消息:
array('name, email, subject, body', 'required'
'message'=>'Please enter a value for {attribute}.'),
但我不知道 {attribute} 来自哪里以及如何为每个字段更改它,所以任何帮助将不胜感激。
我不确定我是否理解你的问题,但你问从哪里来{attribute}
:
一些验证器{attribute}
在您的示例中引入了占位符。如果验证失败,它们将被替换为属性名称。因此,如果没有name
输入并且您message
的'Please enter a valid {attribute}.'
错误消息将是“请输入有效名称”。
虽然{attribute}
占位符可以与每个验证器一起使用,但其中一些会引入更多的占位符。例如,CStringValidator
您可以使用{min}
,{max}
或{length}
. 它们将分别替换为最小、最大或精确字符的数量。
这是一个例子:
array('firstname,lastname', 'string', 'min'=>3,
'tooShort'=>'Your {attribute} must contain at least {min} letters.'
),
如果用户输入的字母少于 3 个,这将给出“您的名字必须包含至少 3 个字母。 ”。这样做的好处是,如果您更改min
参数,您的消息将自动更新。所以它不太容易出错。
使用这些:
return array(
// name, email, subject and body are required
array('name', 'required',
'message'=>'Please enter a value for name.'),
array('email', 'required',
'message'=>'Please enter a value for email.'),
array('subject', 'required',
'message'=>'Please enter a value for subject.'),
array('body', 'required',
'message'=>'Please enter a value for body.'),
{attribute}
取自您的函数:
public function attributeLabels() {
return array(
'id' => 'ID',
'name' => 'Name',
'password' => 'Password',
'email' => 'Email',
);
}
在你的模型上。