我需要针对数据库验证用户输入,如果输入存在,则该字段应该是验证。我以这种方式创建了一个动态模型:
exist
并添加了下一个$modelDynamic->addRule('TIN','exist',[
'targetClass'=>'frontend\modules\profiles\models\PorfBusiness',
'targetAttribute'=>'TIN',
'skipOnEmpty'=>true
])->validate();
规则验证程序:
if (isset($modelDynamic)) {
$formDynamic = ActiveForm::begin([
'type'=>ActiveForm::TYPE_HORIZONTAL,
'formConfig'=>[],
]);
echo $formDynamic->errorSummary($modelDynamic);
echo $formDynamic->field($modelDynamic,'TIN')
->textInput()
->label(Yii::t('app','TIN'));
echo $formDynamic->field($modelDynamic,'Business_Code')
->textInput()
->label(Yii::t('app','Business Code'));
echo HTML::submitButton('Submit');
ActiveForm::end();
}
所有这些都在我的控制器ProfPersonController中。
在名为profile的视图中创建此表单:
d = {('08', '10010'):6, ('23', '10017'):6,('06444', '10028'): 6,('21', '10027'): 6}
(错误的代码)
验证没有任何效果,输入也不正确,也不正确。没有错误摘要也没有发出。 有错误吗?任何的想法?提前谢谢。
答案 0 :(得分:0)
将控制器代码更改为
$modelDynamic= new DynamicModel(['TIN','Business_Code']);
$modelDynamic->addRule('TIN','exist',[
'targetClass'=>'frontend\modules\profiles\models\PorfBusiness',
'targetAttribute'=>'TIN',
'skipOnEmpty' => true
]);
if($modelDynamic->load(Yii::$app->request->post())&& $modelDynamic->validate()){
//Model is Validated and ready to go throgh
}
您必须在load()
DynamicModel
后验证()您的模型