validate برای فیلدی که مقدار از چند dropdown میگیرد -- yii2

[font="Tahoma"][rtl]سلام دوستان

یه فیلد required دارم مقدارشو از چند تا dropbox می گیره و حد اقل باید یکی از این dropbox ها انتخاب شده باشه

اسم همه dropbox ها رو برابر نام فیلد دادم ولی ولیدت رو فقط روی dropbox اولی انجام می ده

ممنون می شم راهنمایی کنید.

[/rtl][/font]

model:




class Ads extends ActiveRecord {

....

....

    public $sub_categories;

public function rules() {

        $rules = [

            ['sub_categories', 'required'],

            ......

            ......

        ];

        return $rules;

    }



view:




.........

.......

<table style="table-layout: fixed;">

        <?php 

        $categories = Category::find()->all();

        for($index = -1; $index < count($categories) - 1; ):?>

            <tr>

                <?php $index++; if(isset($categories[$index])): ?>

                    <td><?php echo $form->field($model, 'sub_categories')->dropDownList(ArrayHelper::map($categories[$index]->subCategories, 'id', 'title'), ['prompt' => $categories[$index]->name]);?></td>

                <?php endif; ?>

                <?php $index++; if(isset($categories[$index])): ?>

                    <td><?php echo $form->field($model, 'sub_categories')->dropDownList(ArrayHelper::map($categories[$index]->subCategories, 'id', 'title'), ['prompt' => $categories[$index]->name]);?></td>

                <?php endif; ?>

                <?php $index++; if(isset($categories[$index])): ?>

                    <td><?php echo $form->field($model, 'sub_categories')->dropDownList(ArrayHelper::map($categories[$index]->subCategories, 'id', 'title'), ['prompt' => $categories[$index]->name]);?></td>

                <?php endif; ?>

            </tr>

        <?php endfor; ?>

    </table>

......

.......



[font="Tahoma"][rtl] ممنون می شم راهنمایی کنید [/rtl][/font]

[rtl]

برادر من با خواندن کد شما با خاک یکسان شدم.

[/rtl]

[rtl]

[font="Tahoma"]

سلام، الان این قسمت از کد شما چرا ۳ بار تکرار شده؟! یکبارش هم که همین کار رو میکنه

[/font][/rtl]




                <?php $index++; if(isset($categories[$index])): ?>

                    <td><?php echo $form->field($model, 'sub_categories')->dropDownList(ArrayHelper::map($categories[$index]->subCategories, 'id', 'title'), ['prompt' => $categories[$index]->name]);?></td>

                <?php endif; ?>



[rtl]

[font="Tahoma"]

ضمنا احتمالا دارید از clientside validation استفاده میکنید، چند تا آیتم تو صفحه هست که همه یک id دارند، مشخصا جاوا اسکریپت دچار مشکل میشه

[/font][/rtl]

[font="Tahoma"][rtl]اون قسمت برای اینه که توی table خوب نشونش بدم که اونش هیچ

برای ایجاد id های مختلف که جاوا اسکریپت بتونه درست کار کنه راه حلی هست؟[/rtl][/font]