当您使用Yii2的验证规则的模型内,例如:在Yii2验证规则中传递多维数组?
[['foo','bar'], 'integer],
显然['foo','bar']
是一个数组,我知道你可以使用。
但可以做到通过一个多维数组是这样的:
$this->numbers = [1,2,3];
[['foo','bar','numbers'], 'integer]
威尔Yii2接受这一点,并检查正确的数据还是会测试值,因为numbers
是一个数组返回一个错误?
当您使用Yii2的验证规则的模型内,例如:在Yii2验证规则中传递多维数组?
[['foo','bar'], 'integer],
显然['foo','bar']
是一个数组,我知道你可以使用。
但可以做到通过一个多维数组是这样的:
$this->numbers = [1,2,3];
[['foo','bar','numbers'], 'integer]
威尔Yii2接受这一点,并检查正确的数据还是会测试值,因为numbers
是一个数组返回一个错误?
你需要合并阵列工作规则
[ArrayHelper::merge(['foo','bar'], $this->getNumberFields()), 'integer']
更新:
使用each
规则。见EachValidator。
public function rules()
{
return [
['numbers', 'each', 'rule' => ['integer']],
]
}
也许[这](http://stackoverflow.com/a/30300977/57091)会帮助你,如果你想创建具有一定的允许值验证。你的意思是foo和bar可能只有价值1,2或3? – robsch
或者数字应该是整数数组?是的,如果这些属性是“正常”整数,需要与foo和bar分开定义。 – robsch
@robsch是的,第二个。我已经将他们转移到使用'each'验证器。 – Brett