2017-02-23 51 views
1

如果我尝试使用官方文档中的示例创建使用匿名函数的内联验证程序,当我尝试保存记录时,出现抱怨第三个参数的错误。但是当我离开它时它会消失。是否有可能我使用错误的样本? 下面是代码示例:Yii2 - 行内校验器错误

// an inline validator defined as an anonymous function 
['token', function ($attribute, $params, $validator) { 
    if (!ctype_alnum($this->$attribute)) { 
     $this->addError($attribute, 'The token must contain letters or digits.'); 
    } 
}], 

以下是基本错误:应用程序\型号\ 缺少参数3为MyModel ::程序\ {车型封}()

只是想知道如果我使用它错了。

http://www.yiiframework.com/doc-2.0/guide-input-validation.html#inline-validatorsenter link description here

+0

我已经制定了答案我自己的问题。第三个参数是2.0.11新增的参数,我运行的是2.0.10。它在页面下面提到它。 – johnsnails

回答

2

我读了link i posted initially,这是(我正在运行2.0.10)2.0.11中增加了新的参数下一个位。

注意:从版本2.0.11开始,您可以使用yii\validators\InlineValidator::addError()来添加错误。这样可以立即使用yii\i18n\I18N::format()对错误信息进行格式化。使用{attribute}{value}错误消息指一个属性标签(无需手动得到它),并相应属性值:

$validator->addError($this, $attribute, 'The value "{value}" is not acceptable for {attribute}.');

+0

通过看到你的名声,我相信你会回答你自己的问题。 :) –