Sprig_Core::delete PHP Метод

delete() публичный Метод

- If the record is loaded, it will be deleted using primary key(s). - If the record is not loaded, it will be deleted using all changed fields. - If no data has been changed, the delete will be ignored.
public delete ( Database_Query_Builder_Delete $query = NULL )
$query Database_Query_Builder_Delete
    public function delete(Database_Query_Builder_Delete $query = NULL)
    {
        if (!$query) {
            $query = DB::delete($this->_table);
        } else {
            $query->table($this->_table);
        }
        if ($changed = $this->changed()) {
            foreach ($changed as $field => $value) {
                $query->where($this->_fields[$field]->column, '=', $this->_fields[$field]->_database_wrap($value));
            }
        } else {
            if (is_array($this->_primary_key)) {
                foreach ($this->_primary_key as $field) {
                    $query->where($this->_fields[$field]->column, '=', $this->_fields[$field]->_database_wrap($this->_original[$field]));
                }
            } else {
                $query->where($this->_fields[$this->_primary_key]->column, '=', $this->_fields[$this->_primary_key]->_database_wrap($this->_original[$this->_primary_key]));
            }
        }
        if ($query->execute($this->_db)) {
            $this->state('deleted');
        }
        return $this;
    }