PHP-验证表单yii2的一部分

我的ii2项目中有一个向导表单.我的表单是yii2活动表单的类型.
现在,我想分别验证每个部分.例如,向导的第一部分包括t1,t2,t3,第二部分包括t4,t5.当用户单击第1部分的下一步按钮时,我只想验证t1,t2和t3,而不要验证t4和t5.我应该如何在yii2中执行此操作?

编辑

请注意,我要使用yii2验证程序,并且不想再次在我的jquery代码中编写验证规则.

编辑:请检查代码

$wizard_config = [
    'id' => 'stepwizard',
    'steps' => [
        1 => [
            'title' => 'اطلاعات پروژه',
            'icon' => 'fa fa-info',
            'content' =>
                $form->field($model, 'title') .
                $form->field($model, 'language_id')->dropDownList($language, ['style' => 'padding-top: 0;', 'prompt' => 'زبان']) .
                $form->field($model, 'project_type_id')->dropDownList($project_type, ['style' => 'padding-top: 0;']) .
                $form->field($model, 'text_type_id')->dropDownList($text_type, ['style' => 'padding-top: 0;']) .
                $form->field($model, 'description')->textarea(['style'=>'height: 140px;resize:none;'])
            ,

        ],
        2 => [
            'title' => 'فایل های پروژه',
            'icon' => 'fa fa-upload',
            'content' =>
                $form->field($model, 'proj_file')->fileInput() .
                $form->field($model, 'pages') .
                $form->field($model, 'template')->fileInput()
            ,
        ],
        3 => [
            'title' => 'زمان و قیمت',
            'icon' => 'fa fa-clock-o',
            'content' =>
                $form->field($model, 'deadline_day') .
                $form->field($model, 'deadline_time') .
                $form->field($model, 'doing_way_id') .
                $form->field($model, 'user_id') .
                $form->field($model, 'pawn_money') .
                $form->field($model, 'is_group')
            ,
        ],
        4 => [
            'title' => 'تایید',
            'icon' => 'fa fa-check',
            'content' => '<h3>Step 3</h3>This is step 3',
        ],
    ],
    'start_step' => 1,
];

解决方法:

您可以针对不同的场景将模型中的步骤分开.

 public function scenarios()
{
    $scenarios = parent::scenarios();

    $scenarios['step1'] = ['login', 'username'];
    $scenarios['step2'] = ['t1', t2];

    return $scenarios;
}

然后在每个步骤中为模型分配方案

 $user->scenario = 'step1';

并仅验证模型属性的一部分.您必须编写一个ajax操作,该操作可以映射步骤和方案并返回验证结果.

上一篇:PHP-Symfony断言类型上


下一篇:C#Web Api-IValidatableObjectvalidationContext服务提供者为null