/** * Metodo que realiza una consulta a la base de datos. * @param string $where [Opcional] Condiciones. * @param array $prepare [Opcional] Lista de indices a reemplazar en la consulta. * @param string $columns [Opcional] Por defecto "*". Columnas. * @param int $limit [Opcional] Numero de datos a retornar. * @return PostsTerms */ private static function select($where = '', $prepare = [], $columns = '*', $limit = '') { $db = DBController::getConnection(); $table = PostTerm::getTableName(); $fetch = 'fetchAll'; $select = $db->select($table, $fetch, $where, $prepare, $columns, '', $limit); $postsTerms = new PostsTerms(); $postsTerms->addPostsTerms($select); return $postsTerms; }
/** * 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); } }