/** * @inheritdoc */ public function beforeValidate() { if (parent::beforeValidate()) { if ($this->scenario == 'user-update') { // Верификация должностей и пользователей foreach ($this->position as $key => $positionId) { if (!isset($this->user[$key])) { continue; } if (!($position = Position::findOne($positionId))) { continue; } if (is_numeric($this->user[$key])) { $user = User::findIdentity($this->user[$key]); } else { $user = User::findByUsername(trim($this->user[$key])); } if (!$user) { continue; } $this->_verifyPositions[] = ['positionId' => $position->id, 'userId' => $user->id]; } if (empty($this->_verifyPositions)) { $this->addError('position', 'Вы должны указать минимум одну должность'); } } return true; } return false; }