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

问题描述 投票:0回答:1

我有两个字段,它们使用同一个模型类的两个不同实例。

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],
        ];
}
forms validation yii2
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.