/** * 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 PostsCategories */ private static function select($where = '', $prepare = [], $columns = '*', $limit = '') { $db = DBController::getConnection(); $table = PostCategory::getTableName(); $fetch = 'fetchAll'; $select = $db->select($table, $fetch, $where, $prepare, $columns, '', $limit); $postsCategories = new PostsCategories(); $postsCategories->addPostsCategories($select); return $postsCategories; }
/** * Metodo que actualiza las categorías vinculadas al post. Se comprueba si ha * borrado y agregado categorías vinculas al post. * @param array $relationshipsCategoriesID Identificadores de las categorías. * @param int $postID Identificador del post. */ private function updateRelationshipsCategories($relationshipsCategoriesID, $postID) { if (!empty($relationshipsCategoriesID)) { $postsCategories = PostsCategories::selectByPostID($postID); //Se combina en un unico array las nuevas categorías y las existentes. $merge = \array_merge($relationshipsCategoriesID, $postsCategories); /* * 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, $relationshipsCategoriesID)); //y las categorías a insertar. $insert = \array_merge(\array_diff($merge, $postsCategories)); $this->deleteRelationshipsCategories($delete, $postID); $this->insertRelationshipsCategories($insert, $postID); } }