очень странный код.
А зачем вообще
$floraUser->isNewRecord = true
?
И что за из ниоткуда взявшаяся переменная
$id
?
Почему создание экземпляра класса FloraUser за пределами перебора? Вы же при новой итерации цикла работаете не с новым классом, а со старым. А у него уже есть id и Вы просто перезаписываете кучу раз одну и ту же запись.
Если я правильно понял Вашу затею, то видимо так:
foreach (Yii::$app->request->post('Flora')['users'] as $user) {
$floraUser = new FloraUser();
$floraUser->flora_id = $id;
$floraUser->user_id = $user;
if(!$floraUser->save())
throw new \yii\web\ErrorException(yii\helpers\Json::encode($floraUser->errors));//это что бы увидеть в дебаге ошибки валидации, можно грохнуть
}
а если еще сократить, то так:
foreach (Yii::$app->request->post('Flora')['users'] as $user) {
$floraUser = new FloraUser([
'flora_id'=>$id,
'user_id'=>$user
]);
if(!$floraUser->save())
throw new \yii\web\ErrorException(yii\helpers\Json::encode($floraUser->errors)); //это что бы увидеть в дебаге ошибки валидации, можно грохнуть
}