@oleg_46

Yii2. Как проводить валидацию свойств разных моделей в зависимости друг от друга?

Как проводить валидацию свойств разных моделей в зависимости друг от друга?
Например дата конца модели 2 должна быть больше даты начала модели 1.
  • Вопрос задан
  • 124 просмотра
Пригласить эксперта
Ответы на вопрос 2
kawabanga
@kawabanga
Пишите собственное правило валидации. и потом используйте в подобном коде.

if ($model1->validate()) {
$model2->temp_end = $model1->end_date;
if ($model2->validate()) {
// ваш код
}

}
Ответ написан
Комментировать
Raz-Mik
@Raz-Mik
напиши свой валидатор. в рулесах для даты второй модели
public function rules()
    {
        return [
            ....
            [['dateEnd'], 'dateValidate'],
        ];
    }


далее сам валидатор
public function dateValidate($attribute, $params)
{
        $model=Model_1::findOne(id);
        if($this->dateEnd<=$model->dateStart){
                $this->addError('dateEnd', 'Ошибка');
        }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы