src/Titon/Db/Repository.php
protected function _processUpdate(Query $query, array $options = []) {
        $data = $query->getData();
        $options = $options + [
            'before' => true,
            'after' => true
        ];

        // Fetch ID
        $this->id = $id = $this->findID($query);

        if ($options['before']) {
            foreach (['db.preSave', 'db.preUpdate'] as $event) {
                $event = $this->emit($event, [$query, $id, &$data]);

                if (!$event->getState()) {
                    return 0;
                }
            }
        }

        // Reset the modified data
        $query->data($data);

        // Update the connection context and execute the query
        $count = $this->getDriver()
            ->setContext('write')
            ->executeQuery($query)
            ->save();

        // Exit early if save failed
        if ($count === false) {
            return false;
        }

        if ($options['after']) {
            $this->emit('db.postSave db.postUpdate', [$id, $count]);
        }

        return $count;
    }
protected function _processUpdate(Query $query, array $options = []) {
        $data = $query->getData();
        $options = $options + [
            'before' => true,
            'after' => true
        ];

        // Fetch ID
        $this->id = $id = $this->findID($query);

        if ($options['before']) {
            foreach (['db.preSave', 'db.preUpdate'] as $event) {
                $event = $this->emit($event, [$query, $id, &$data]);

                if (!$event->getState()) {
                    return 0;
                }
            }
        }

        // Reset the modified data
        $query->data($data);

        // Update the connection context and execute the query
        $count = $this->getDriver()
            ->setContext('write')
            ->executeQuery($query)
            ->save();

        // Exit early if save failed
        if ($count === false) {
            return false;
        }

        if ($options['after']) {
            $this->emit('db.postSave db.postUpdate', [$id, $count]);
        }

        return $count;
    }
protected function _processUpdate ( Query $ query , array $ options = [ ] ) { $ data = $ query -> getData ( ) ; $ options = $ options + [ 'before' => true , 'after' => true ] ; // Fetch ID $ this -> id = $ id = $ this -> findID ( $ query ) ; if ( $ options [ 'before' ] ) { foreach ( [ 'db.preSave' , 'db.preUpdate' ] as $ event ) { $ event = $ this -> emit ( $ event , [ $ query , $ id , & $ data ] ) ; if ( ! $ event -> getState ( ) ) { return 0 ; } } } // Reset the modified data $ query -> data ( $ data ) ; // Update the connection context and execute the query $ count = $ this -> getDriver ( ) -> setContext ( 'write' ) -> executeQuery ( $ query ) -> save ( ) ; // Exit early if save failed if ( $ count === false ) { return false ; } if ( $ options [ 'after' ] ) { $ this -> emit ( 'db.postSave db.postUpdate' , [ $ id , $ count ] ) ; } return $ count ; }
Primary method that handles the processing of update queries.

Before a save is executed, a `preSave` and `preUpdate` event will be triggered.
This event allows data to be modified before saving via references.
If this event returns a falsey value, the save will exit early and
return a 0. This allows behaviors and events to cease save operations.

Before the driver is queried, the connection context will be set to `write`.

After the query has executed, and no rows have been affected, the method
will exit early with a 0 response. Otherwise, a `postSave` and `postUpdate` event will be triggered.

@param \Titon\Db\Query $query
@param mixed $options {
@type bool $before  Will trigger before callbacks
@type bool $after   Will trigger after callbacks
}
@return int
- The count of records updated
- 0 if save operation failed
Primary method that handles the processing of update queries .