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; }
/** * Setup column types in provided columns object * @param $columns static|\stdClass */ static function setUpColumns($columns) { $columns->resultId = Result::columns()->id; $columns->tagId = Tag::columns()->id; //$columns->resultId = Column::INTEGER + Column::NOT_NULL; //$columns->tagId = Column::INTEGER + Column::NOT_NULL; }
public static function migrate() { $migrationManager = new Manager(); $migrationManager->setLog(new Log('colored-stdout')); $migrationManager->add(Host::table()->migration()); $migrationManager->add(Tag::table()->migration()); $migrationManager->add(Result::table()->migration()); $migrationManager->add(Suite::table()->migration()); $migrationManager->add(ResultTag::table()->migration()); $migrationManager->add(Session::table()->migration()); $migrationManager->add(Series::table()->migration()); $migrationManager->add(SeriesTag::table()->migration()); $migrationManager->run(); }