if (is_array($model->user_id)){
foreach ($model->user_id as $user_id) {
$model->user_id = $user_id;
$model->rang_id;
$model->save();
}
}
Вы просто сохранили n раз модель, каждый раз меняя в ней user_id. В чем смысл? В итоге у Вас в user_id будет последний элемент массива. И что в цикле делает
$model->rang_id;
, он же не меняется, его в любом случае за цикл надо вынести. Вы определитесь что Вы хотите получить. Если Вам надо там хранить массив, то возможно стоит юзать
json(делая его в beforeSave и обратно в afterFind), если строкой, то надо объединить массив в строку
implode, возможно нужна еще 1 таблица, где будут храниться пары regEvent_id | user_id
Что именно Вам надо?
По поводу валидации массивов, есть
yii\validators\EachValidator
и меня смущает
'users' => '',
'users' => [
0 => '1'
1 => '2'
2 => '3'
]
как два одинаковых ключа получилось? К тому же пришло у Вас
$users
, а перебираете в цикле Вы
$model->user_id
, я так понимаю там должно было быть
$model->users
или
Yii::$app->request->post('users')
В общем странный тут код, а массив вполне обычный. Думаю стоит закончить на сегодня и пойти попить чего-то. Вы же не вчерашний, а тут прям ужасть. Надо отдыхать.