diff --git a/docs/guide/input-validation.md b/docs/guide/input-validation.md index f34c41f895..35f3f7ed86 100644 --- a/docs/guide/input-validation.md +++ b/docs/guide/input-validation.md @@ -312,7 +312,7 @@ the method/function is: ```php /** * @param string $attribute the attribute currently being validated - * @param array $params the additional name-value pairs given in the rule + * @param mixed $params the value of the "params" given in the rule */ function ($attribute, $params) ``` diff --git a/framework/validators/InlineValidator.php b/framework/validators/InlineValidator.php index c4f4b950cf..3df96dbc70 100644 --- a/framework/validators/InlineValidator.php +++ b/framework/validators/InlineValidator.php @@ -26,7 +26,9 @@ class InlineValidator extends Validator { /** * @var string|\Closure an anonymous function or the name of a model class method that will be - * called to perform the actual validation. The signature of the method should be like the following: + * called to perform the actual validation. The signature of the method should be like the following, + * where `$attribute` is the name of the attribute to be validated, and `$params` contains the value + * of [[params]] that you specify when declaring the inline validation rule: * * ~~~ * function foo($attribute, $params) @@ -34,7 +36,7 @@ class InlineValidator extends Validator */ public $method; /** - * @var array additional parameters that are passed to the validation method + * @var mixed additional parameters that are passed to the validation method */ public $params; /** diff --git a/tests/unit/framework/validators/ValidatorTest.php b/tests/unit/framework/validators/ValidatorTest.php index 3205aab2d1..b5ae88a7ea 100644 --- a/tests/unit/framework/validators/ValidatorTest.php +++ b/tests/unit/framework/validators/ValidatorTest.php @@ -57,9 +57,10 @@ class ValidatorTest extends TestCase $this->assertInstanceOf(BooleanValidator::className(), $val); $this->assertSame(['a', 'b'], $val->on); $this->assertSame(['c', 'd', 'e'], $val->except); - $val = TestValidator::createValidator('inlineVal', $model, ['val_attr_a']); + $val = TestValidator::createValidator('inlineVal', $model, ['val_attr_a'], ['params' => ['foo' => 'bar']]); $this->assertInstanceOf(InlineValidator::className(), $val); $this->assertSame('inlineVal', $val->method); + $this->assertSame(['foo' => 'bar'], $val->params); } public function testValidate()