在用户输入验证期间,我希望将属性与值进行比较。
我有这样的代码:
['ao_id', 'compare', 'when' => function($model) {
return $model->lqp_id == 24 || $model->lqp_id == 26 || $model->lqp_id == 46;
}, 'compareValue' => 50],它可以工作(但仅当'enableClientValidation' => false时),但是否有可能以某种方式显示外来属性的名称?因为如果用户收到外表面(ao_id)必须为50的错误消息,则没有多大帮助。没有人知道这是什么意思,因为在下拉列表中,您只能看到名称,而不能看到ids。非常感谢!
发布于 2017-03-13 15:24:43
添加message密钥,您可以在其中定义要显示的消息,而不是默认消息。
发布于 2017-03-13 17:36:17
首先,如果您希望您的条件验证也能在客户端工作(当为enableClientValidation=>true时),那么添加whenClient属性,该属性包含执行验证的javascript代码。
其次,可以使用message属性指定自定义验证错误。
[
'ao_id',
'compare',
'when' => function ($model) {
return $model->lqp_id == 24 || $model->lqp_id == 26 || $model->lqp_id == 46;
},
'whenClient' => "function (attribute, value) {
return $('#lqp_id').val() == '24' || $('#lqp_id').val() == '26' || $('#lqp_id').val() == '46';
}",
'compareValue' => 50,
'message'=>'ao_id must be 50 when lqp_id is 24, 26 or 46'
]注意:一定要检查并更改输入字段$('#lqp_id')的id,因为这很可能与我的示例不同。
https://stackoverflow.com/questions/42758232
复制相似问题