yii2 모델 검증 규칙 규칙 규칙 검증에 실패하면 다른 필드 검증을 계속하지 않고 즉시 반환됩니다.
Mode::rules();
public function rules() { [['username', 'password'], 'required'], ['age', 'required'], // ...... }
사용자 이름이 비어 있으면 비밀번호와 나이를 확인하지 않고 즉시 오류가 반환됩니다. 마찬가지로 age가 비어 있으면 다른 필드는 검증되지 않습니다
yii2에도 이런 구성이 있는지 궁금합니다.
yii2 모델 검증 규칙 rule 규칙 검증에 실패하면 다른 필드 검증을 계속하지 않고 즉시 반환됩니다.
Mode::rules( );
public function rules() { [['username', 'password'], 'required'], ['age', 'required'], // ...... }
사용자 이름이 비어 있으면 비밀번호와 나이를 확인하지 않고 즉시 오류가 반환됩니다. 마찬가지로 age가 비어 있으면 다른 필드는 검증되지 않습니다
yii2에도 이런 구성이 있는지 궁금합니다.
검증 후 어떤 항목이 검증을 통과하지 못했는지 알려드리겠습니다. 구체적으로 코드를 참조하세요.
/** * Performs the data validation. * * This method executes the validation rules applicable to the current [[scenario]]. * The following criteria are used to determine whether a rule is currently applicable: * * - the rule must be associated with the attributes relevant to the current scenario; * - the rules must be effective for the current scenario. * * This method will call [[beforeValidate()]] and [[afterValidate()]] before and * after the actual validation, respectively. If [[beforeValidate()]] returns false, * the validation will be cancelled and [[afterValidate()]] will not be called. * * Errors found during the validation can be retrieved via [[getErrors()]], * [[getFirstErrors()]] and [[getFirstError()]]. * * @param array $attributeNames list of attribute names that should be validated. * If this parameter is empty, it means any attribute listed in the applicable * validation rules should be validated. * @param boolean $clearErrors whether to call [[clearErrors()]] before performing validation * @return boolean whether the validation is successful without any error. * @throws InvalidParamException if the current scenario is unknown. */ public function validate($attributeNames = null, $clearErrors = true) { if ($clearErrors) { $this->clearErrors(); } if (!$this->beforeValidate()) { return false; } $scenarios = $this->scenarios(); $scenario = $this->getScenario(); if (!isset($scenarios[$scenario])) { throw new InvalidParamException("Unknown scenario: $scenario"); } if ($attributeNames === null) { $attributeNames = $this->activeAttributes(); } //注意这个foreach foreach ($this->getActiveValidators() as $validator) { $validator->validateAttributes($this, $attributeNames); } $this->afterValidate(); return !$this->hasErrors(); }