以下功能是为了确保来自表单的电子邮件是唯一的,如果它已在使用中,则会显示一条消息。我想改变这个消息。
{
"return_seeds": [
{
"prevalence": "2.803636",
"result": "penicillin"
},
{
"prevalence": "2.748252",
"result": "plan: 1"
},
{
"prevalence": "2.685714",
"result": "actos"
},
{
"prevalence": "2.670330",
"result": "lipitor"
},
{
"prevalence": "2.649351",
"result": "zocor"
},
{
"prevalence": "1.400000",
"result": "ibuprofen 200 mg three pills"
},
...
]
}
我试过这种方式:
public function buildRules(RulesChecker $rules)
{
$rules->add($rules->isUnique(['username']));
$rules->add($rules->isUnique(['email']));
return $rules;
}
它有效,但两个消息都被显示,默认消息和我的消息。
答案 0 :(得分:7)
使用这种添加唯一规则的方式时,您必须将消息传递给isUnique()
调用第二个参数,即
$rules->add($rules->isUnique(['email'], 'Este email já encontra-se em uso.'));
这是因为您在技术上以这种方式创建嵌套的callable($rules->isUnique()
创建一个,$rules->add()
创建另一个),并在add()
调用中定义选项将导致它们成为在外部callable中设置,最后导致设置两个消息,即为外部callable设置的消息,以及内部callable中的默认消息。
基本上上面是
的简写$rules->add(new \Cake\ORM\Rule\IsUnique(['email']), [
'errorField' => 'email',
'message' => 'Este email já encontra-se em uso.'
]);
另见