Pimcore\Model\Object\ClassDefinition\Dao::delete PHP Method

delete() public method

Deletes object from database
public delete ( ) : void
return void
    public function delete()
    {
        $this->db->delete("classes", $this->db->quoteInto("id = ?", $this->model->getId()));
        $objectTable = "object_query_" . $this->model->getId();
        $objectDatastoreTable = "object_store_" . $this->model->getId();
        $objectDatastoreTableRelation = "object_relations_" . $this->model->getId();
        $objectMetadataTable = "object_metadata_" . $this->model->getId();
        $this->db->query('DROP TABLE `' . $objectTable . '`');
        $this->db->query('DROP TABLE `' . $objectDatastoreTable . '`');
        $this->db->query('DROP TABLE `' . $objectDatastoreTableRelation . '`');
        $this->db->query('DROP TABLE IF EXISTS `' . $objectMetadataTable . '`');
        $this->db->query('DROP VIEW `object_' . $this->model->getId() . '`');
        // delete data
        $this->db->delete("objects", $this->db->quoteInto("o_classId = ?", $this->model->getId()));
        // remove fieldcollection tables
        $allTables = $this->db->fetchAll("SHOW TABLES LIKE 'object_collection_%_" . $this->model->getId() . "'");
        foreach ($allTables as $table) {
            $collectionTable = current($table);
            $this->db->query("DROP TABLE IF EXISTS `" . $collectionTable . "`");
        }
        // remove localized fields tables and views
        $allViews = $this->db->fetchAll("SHOW TABLES LIKE 'object_localized_" . $this->model->getId() . "_%'");
        foreach ($allViews as $view) {
            $localizedView = current($view);
            $this->db->query("DROP VIEW IF EXISTS `" . $localizedView . "`");
        }
        $allTables = $this->db->fetchAll("SHOW TABLES LIKE 'object_localized_query_" . $this->model->getId() . "_%'");
        foreach ($allTables as $table) {
            $queryTable = current($table);
            $this->db->query("DROP TABLE IF EXISTS `" . $queryTable . "`");
        }
        $this->db->query("DROP TABLE IF EXISTS object_localized_data_" . $this->model->getId());
        // objectbrick tables
        $allTables = $this->db->fetchAll("SHOW TABLES LIKE 'object_brick_%_" . $this->model->getId() . "'");
        foreach ($allTables as $table) {
            $brickTable = current($table);
            $this->db->query("DROP TABLE `" . $brickTable . "`");
        }
    }