/** * проверяем изменения в героях */ public function checkHeroes($model) { $array_identical = false; if (count($model->dotaEventHeroes) != count($model->hero_id)) { $array_identical = false; } else { foreach ($model->dotaEventHeroes as $model1) { $array_identical = false; foreach ($model->hero_id as $value) { $array_identical = false; if ($model1->hero_id == $value) { if ($model->price_md_h[$model1->hero_id] == $model1->price_md && $model->price_hd[$model1->hero_id] == $model1->price_hd) { $array_identical = true; } else { $array_identical = false; } } if ($array_identical === false) { break; } } if ($array_identical === false) { break; } } } if ($array_identical == false) { foreach ($model->dotaEventHeroes as $model1) { $model1->delete(); } foreach ($model->hero_id as $hero_id) { if ($model->price_md_h[$hero_id] != 0 || $model->price_hd[$hero_id] != 0) { $model_n = new DotaEventHero(); $model_n->event_id = $model->id; $model_n->hero_id = $hero_id; if ($model->price_md_h[$hero_id] != 0) { $model_n->price_md = $model->price_md_h[$hero_id]; } if ($model->price_hd[$hero_id] != 0) { $model_n->price_hd = $model->price_hd[$hero_id]; } $model_n->save(); //echo'<pre>';var_dump($model_n);echo'</pre>';die; } } } }