/** * @inheritdoc */ public function init() { parent::init(); $this->messageLength = $this->messageLength ?: Yii::t('yii', '{attribute} should have a length of {length} characters'); $this->messageCharacters = $this->messageCharacters ?: Yii::t('yii', '{attribute} contains incorrect characters'); $this->messageChecksum = $this->messageChecksum ?: Yii::t('yii', '{attribute} failed checksum validation'); if ($this->length) { $this->validatorLength = Yii::createObject(['class' => RegularExpressionValidator::className(), 'message' => Yii::$app->getI18n()->format($this->messageLength, ['length' => $this->length], Yii::$app->language), 'pattern' => '/^.{' . $this->length . '}$/']); } if ($this->characters) { $this->validatorCharacters = Yii::createObject(['class' => RegularExpressionValidator::className(), 'message' => $this->messageCharacters, 'pattern' => '/^[' . $this->characters . ']+$/']); } if ($this->checksum) { $this->validatorChecksum = Yii::createObject(['class' => BarcodeChecksum::className(), 'message' => $this->messageChecksum, 'method' => $this->checksum]); } }
/** * @param \yii\base\Model $model the data model to be validated * @param string $attribute the name of the attribute to be validated. */ protected function validateChecksum($model, $attribute) { if ($this->checksum) { $this->validatorChecksum->validateAttribute($model, $attribute); } }