protected function updateExtensions(Package &$model, KeekoPackageSchema $pkg) { // remove all existing extensions from this package first ExtensionQuery::create()->filterByPackage($model)->delete(); // add them one by one foreach ($pkg->getAllExtensions() as $key => $exts) { foreach ($exts as $data) { $ext = new Extension(); $ext->setKey($key); $ext->setData(Json::encode($data, Json::UNESCAPED_SLASHES)); $ext->setPackage($model); $ext->save(); } } }
public function toArray() { $arr = parent::toArray(); if ($this->actions->size() > 0) { $actions = []; foreach ($this->actions as $action) { $actions[$action->getName()] = $action->toArray(); } $arr['actions'] = $actions; } // if ($this->commands->size() > 0) { // $commands = []; // foreach ($this->commands as $command) { // $commands[$command->getName()] = $command->toArray(); // } // $arr['commands'] = $commands; // } return $arr; }