//模型中定义
public function scenarios()
{
$scenarios = parent::scenarios();
$scenarios['housesModel'] = ['id']; //新场景用于houses提交表单
return $scenarios;
}
//控制器中使用
$model = $this->findModel($id);
$estateModel = new Estate;
$estateModel->setScenario('housesModel'); //加载使用场景
利用不同场景的切换,就可以实现不同表单中,对于其他模型属性的required设置,且不改变该模型本身的rules。