Yii2多个模型以一种形式js验证

时间:2017-12-18 10:33:53

标签: forms validation yii2

我有两个文件,它们使用相同模型类的两个不同实例。

Test Case Video

$form->field($billing_address, 'zip', 
[
    'selectors' => [
        'input' => '#billing-zip',
        'container' => '#billing-container',
    ],
    'options' => ['id' => 'billing-container'],
])->textInput(['maxlength' => 11, 
               'name'=> 'Billing_Address[zip]', 
               'id'=>'billing-zip']); 

//Shipping
$form->field($shipping_address, 'zip', 
[
    'selectors' => [
        'input' => '#shipping-zip',
        'container' => '#shipping-container',
    ],
    'options' => ['id' => 'shipping-container'],
])->textInput(['maxlength' => 11, 
               'name'=> 'Shipping_Address[zip]', 
               'id'=>'shipping-zip']);

当我填写填充字段时,仅显示有错误的字段的错误。 但是当我按提交时,如果其中一个zip字段有错误,则所有zip字段的错误显示为

public function rules()
{
        return [
            [['zip'], 'string', 'max' => 23],
        ];
}

1 个答案:

答案 0 :(得分:0)

我认为你可以在你的控制器中使用这样的东西:

    if( Model::loadMultiple($model_array, Yii::$app->request->post()) && Model::validateMultiple($model_array) && $model->validate()){
        //your stuff
}

其中$ model_array是模型数组

$model_array['model1'] = new YourModelClass();
$model_array['model2'] = new YourModelClass();

Documentation