ActiveForm::validate($model1, $model2);
Но для конкретной проверки "number" не нужно не when, ни scenario. А для "required" - нужно.
[['mass', 'capacity'], 'number', 'when' => function(){
if($this->cargoData == 'mv'){
return $this->mass || $this->capacity;
}
return false;
}],
Тогда сценарий надо передавать (например, в GET-параметре URL) в валидацию.
['mass', 'number', 'when' => function(){
if($this->cargoData == 'mv'){
return $this->mass;
}
return false;
}],
['capacity', 'number', 'when' => function(){
if($this->cargoData == 'mv'){
return $this->capacity;
}
return false;
}],
Тогда правильнее не сценарием, а 'when' и 'whenClient'
Хотя, в крайних случаях, можно использовать, но в этом случае - нет, полностью согласен.