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(); } } }