/** * Metodo que actualiza las etiquetas vinculadas al post. Se comprueba * si se debe agregar o borrar. * @param array $relationshipsTermsID Identificadores de las etiquetas. * @param int $postID Identificador del post. */ private function updateRelationshipsTerms($relationshipsTermsID, $postID) { if (!empty($relationshipsTermsID)) { $postsTerms = PostsTerms::selectByPostID($postID); //Se combina en un unico array. $merge = \array_merge($relationshipsTermsID, $postsTerms); /* * Se comprueba sus diferencias. * * Al obtener la diferencias se mantienen los indices del array $MERGE * con array_merge se reinician los indices, evitando problemas en los modelos. */ //se obtiene las categorías a eliminar $delete = \array_merge(\array_diff($merge, $relationshipsTermsID)); //y las categorías a insertar. $insert = \array_merge(\array_diff($merge, $postsTerms)); $this->deleteRelationshipsTerms($delete, $postID); $this->insertRelationshipsTerms($insert, $postID); } }