public static function addResult($json) { $result = new Result(); $result->sessionId = $json['session']; $result->param = $json['param']; $result->value = $json['value']; $result->save(); if (isset($json['tags'])) { /** @var Session $session */ $session = Session::find($result->sessionId); $tagIds = array(); foreach ($json['tags'] as $tagName) { $tag = new Tag(); $tag->name = $tagName; $tag->findOrSave(); $tagIds[] = $tag->id; } $series = new Series(); $series->sessionId = $session->id; $series->hostId = $session->hostId; $series->suiteId = $session->suiteId; sort($tagIds); $series->tagIds = implode(',', $tagIds); $series->findOrSave(); foreach ($tagIds as $tagId) { $seriesTag = new SeriesTag(); $seriesTag->tagId = $tagId; $seriesTag->seriesId = $series->id; $seriesTag->findOrSave(); } } return true; }